我使用的是64位python3的64位Windows机器。我需要为windows 32bit机器构建一个可安装的软件包,并偶然发现了bdist功能的交叉编译功能:https://docs.python.org/3/distutils/builtdist.html
我正在使用像这样的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
无法执行。
python文档说我需要交叉编译整个python包用于windows - 但我不确定这是否是必要的,因为安装程序是用于正确的体系结构,并且在构建过程中我没有收到任何错误消息。
这个命令有问题吗?我是否真的需要交叉编译或者是否能够进行第二次32位python安装?
答案 0 :(得分:0)
我发现这是一个报告错误https://github.com/pypa/setuptools/issues/253
setuptools仅检查操作系统体系结构,并忽略用于安装脚本的plat-name字符串。
解决方法(直到此问题关闭):使用目标体系结构构建wininst。