Python Packaging and Distribution Scenario
我仍然相对较新的python包装,每次我觉得我找到"解决方案",我抛出另一个曲线球,这是我的问题,然后我尝试了:
- 我安装了带有Python 2.7.3的CentOS和Ubuntu系统,它们是从网络分区的,所以我必须创建一个"all in one package"
- 目标系统没有安装setuptools,easy_install,pip,virtualenv(这是我在这里要解决的问题)
- 对于应用程序,requirements.txt(或setup.py install_dependencies)相当繁重(Flask等等)(尽管如此,这不是问题)
我的包装成熟度进展缓慢:
对于连接系统,我有一个非常好的过程
- 打包:python2.7 setup.py sdist
- 安装:创建virtualenv,解压分发,python setup.py安装
对于断开连接的系统,我尝试了一些方法。车轮似乎是合适的,但我无法进入包括setuptools,easy_install,pip的"最终"安装。我是车轮新手所以也许我错过了一些明显的东西。
我从这些引用开始:
- Python on Wheels,这是非常有用的,但我无法获得我的.sh脚本,测试数据等...安装所以我现在实际上正在使用wheel / sdist混合
- Wheel,Docs,再次,非常有帮助,但我被困在"断开系统的最后一英里"
- 然后我发现我可以把virtualenv打包成轮子:-)耶
- 然后我发现我可以将easy_install打包为python程序:-)但是,这取决于setuptools,boo,我找不到如何获得这些打包/安装
有关引导系统的参考,有Python,断开连接,但没有setuptools,pip,wheels,virtualenv?我安装这个简单代理所必须做的事情列表变得太长了:/我想如果我能完成依赖链,必须有一种方法可以将自定义脚本锁定到setup.py来缩小自定义步骤退后,退下 ...
@mac提到的pip install --download选项已被弃用和删除。相反,文档声明应该使用pip下载方法。所以工作流程应该是:
您的流程可能会根据您的目标平台而有所不同,但一般来说,获得您要实现的目标的典型方法是在在线计算机上下载软件包,将其复制到脱机软件包,然后从文件而不是URL或存储库)。
基于RPM的发行版的可能工作流程可能是:
如果您必须在许多服务器上复制该过程,我建议您在防火墙后面设置自己的存储库。在
1 | $ pip install --no-index --find-links=file:///local/dir/ SomePackage |
对于RPM或DEB repos来说有点复杂(但不是火箭科学!),但可能也没有那么必要,因为你真的应该只安装