【问题标题】:Crosscompile Python bdist_wininst executeables交叉编译 Python bdist_wininst 可执行文件
【发布时间】:2016-06-07 11:14:00
【问题描述】:

我正在使用带有 64 位 python3 的 64 位 Windows 机器。我需要为 Windows 32 位机器构建一个可安装包,并偶然发现了 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文档说我需要为windows交叉编译整个python包 - 但我不确定这是否有必要,因为安装程序适用于正确的架构,并且在构建过程中我没有收到错误消息。 命令有问题吗?我真的需要交叉编译还是安装第二个 32 位 python 就足够了?

【问题讨论】:

    标签: python cpu-architecture


    【解决方案1】:

    我发现这是一个报告的错误https://github.com/pypa/setuptools/issues/253

    setuptools 只检查操作系统架构并忽略 plat-name 字符串以安装脚本。

    解决方法(直到此问题结束):使用目标架构来构建 wininst。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 2012-01-26
      • 1970-01-01
      • 2014-06-08
      • 2019-08-23
      • 1970-01-01
      相关资源
      最近更新 更多