我正在运行Ubuntu的计算机上编写程序,该计算机需要在运行OS X且带有x86处理器的计算机上运行x86-64处理器。我可能无法进行任何类型的库安装,所以venv几乎是我所知道的唯一选择。
如何为该平台制作一个目标?
如果我不能,是否有更好的方法来运送程序库?
答案 0 :(得分:4)
Virtualenvs 不包装机制。 virtualenv没有理由离开它创建的计算机。它不起作用,virtualenv 100%特定于您的操作系统,CPU架构,Python版本等。
有许多包装解决方案。旧的和当前的方法是在setup.py
中指定依赖项,并在目标计算机上运行setup.py install
。请注意,此可以在virtualenv中发生,您只需要创建virtualenv并在那里运行setup.py。 virtualenv和3.3中的标准库venv
都提供了在virtualenv创建之后自动执行此操作的方法。
如果您绝对必须创建二进制分发(例如,因为您需要扩展模块而最终用户没有编译器),您需要一个鸡蛋或一个轮子或一个.py到二进制转换器( py2exe,PyInstaller,cx_Freeze等)。您将需要访问OS X计算机来创建它。至少轮子和鸡蛋通常都是安装的,因此使用它们并不能为您节省任何麻烦。这是因为它们是二进制分发的格式,它们的主要目的是将构建步骤从最终用户推送到开发人员,而不是删除安装步骤。
总结:只需创建一个脚本,创建一个virtualenv并安装您的应用程序以及所需的库。
答案 1 :(得分:0)
你不能这样做,因为你在Ubuntu上使用的python可执行文件不会在OS X上运行,即使架构是相同的。
如果您尝试在没有安装的情况下分发Python程序,可以查看PyInstaller之类的内容。您仍然需要访问运行OS X的计算机来生成应用程序包,但您应该能够将所有内容打包成一个像标准OS X应用程序一样启动的.app包。