2016-06-07 63 views
0

我正在使用64位Windows機器與64位python3。我需要建立一個安裝包爲Windows 32位計算機和偶然發現了bdist功能的交叉編譯功能:https://docs.python.org/3/distutils/builtdist.html交叉編譯Python bdist_wininst可執行文件

我用這樣一個setup.py:

from ez_setup import use_setuptools 
use_setuptools() 

from setuptools import setup, find_packages 

setup(name='mypackage', 
     version='1.0', 
     description='Some Description', 
     install_requires=['requests'], 
     package_dir={'': 'src'}, 
     packages=[''], 
     entry_points = {'console_scripts': ['somescript = foobar:main']}, 
    ) 

和構建安裝軟件包像這樣:

python setup.py build --plat-name=win32 bdist_wininst --user-access-control auto 
python setup.py build --plat-name=win-amd64 bdist_wininst --user-access-control auto 

在這兩種情況下,我得到指定的架構,但該定義console_script somescript安裝後未executeable正確executeable格式。 python文檔說我需要交叉編譯windows的整個python包 - 但是我不確定這是否甚至是必要的,因爲安裝程序是用於正確的體系結構,而且在構建過程中沒有任何錯誤消息。 命令有問題嗎?我真的需要交叉編譯還是有足夠的時間來安裝第二個32位Python?

回答

0

當我發現這是一個報告的bug https://github.com/pypa/setuptools/issues/253

的setuptools的只做檢查的OS架構而忽略了高原名字符串的安裝腳本。

解決方法(直到此問題已關閉):使用目標體系結構構建wininst。