Use virtualenv, or pyvenv to isolate application specific dependencies from a shared Python installation.
Use pip wheel to create a cache of wheel distributions, for the purpose of > speeding up subsequent installations.
If you’re looking for management of fully integrated cross-platform software stacks, consider buildout (primarily focused on the web development community) or Hashdist, or conda (both primarily focused on the scientific community).
Packaging Tool Recommendations
Use setuptools to define projects and create Source Distributions.
Use the bdist_wheel setuptools extension available from the wheel project to create wheels. This is especially beneficial, if your project contains binary extensions.
您可能会发现HitchHiker's Guide to Packaging很有用,即使它不完整。我将从Quick Start tutorial开始。试着浏览一下Python Package Index上的Python包。只需下载tarball,解包,然后查看
setup.py
文件。或者更好的方法是,只需查看列出公共源代码存储库(如托管在GitHub或BitBucket上的存储库)的包。你一定会在头版碰到一个。我的最后一个建议是去做一个,不要害怕失败。我真的不明白,直到我开始自己做。在PyPI上创建一个新的包很简单,删除它也很容易。所以,创建一个虚拟包并四处播放。
先读这个https://packaging.python.org/en/latest/current.html
这个anwser已经过时了,而且确实有一个针对python打包世界的救援计划,叫做
轮距
我想pythonwheels.com这里:
车轮的优点
关于正确的python打包(以及关于wheels)的全部内容,请参见packaging.python.org
康达路
对于科学计算(这在packaging.python.org上也是推荐的,见上文),我会考虑使用CONDA packaging,这可以看作是在PyPI和pip工具之上构建的第三方服务。它还可以很好地设置您自己的binstar版本,因此我可以想象它可以完成复杂的定制企业包管理的技巧。
Conda可以安装到用户文件夹中(没有超级用户权限),工作方式类似于magic
以及强大的虚拟环境扩展。
鸡蛋道
此选项与python-distribute.org相关,并且已经过时(以及站点),因此让我向您介绍一个我喜欢的现成且紧凑的setup.py示例:
这段引述摘自setup.py的状态指南,仍然适用:
我(向我)再加一点
我建议在尝试无意识的复制粘贴之前,先了解一下packaging-ecosystem(来自gotgenes所指的指南)。互联网上的大多数例子都是从
但是这个示例不支持构建eggpython setup.py bdist_egg(以及其他一些旧的功能),这些功能在
原因是它们已被弃用。
现在根据指南
不推荐使用的setuptools将被distutils2替换,后者“将成为Python 3.3中标准库的一部分”。我必须说我喜欢安装工具和鸡蛋,但还没有完全相信distutils2的便利性。它需要
以及安装
聚苯乙烯
包装从来都不是小事(一个人通过尝试开发一个新的来学习这个),所以我认为很多事情都是有原因的。我只希望这次它能正确地完成。
完成编写
setup.py
脚本here的演练。(举几个例子)如果您想要一个真实的例子,我可以为您指出几个主要项目的
setup.py
脚本。Django's是here,pyglet's是here。您只需浏览名为setup.py的文件的其他项目的源代码即可获得更多示例。这些并不是简单的例子;我提供的教程链接有这些。这些都比较复杂,但也比较实用。
相关问题 更多 >
编程相关推荐