我们正在尝试安装几个没有互联网的python包.
For ex : python-keystoneclient
Run Code Online (Sandbox Code Playgroud)
为此,我们从https://pypi.python.org/pypi/python-keystoneclient/1.7.1下载了包,并将其保存在服务器中.
但是,在安装tar.gz和.whl软件包时,安装程序首先要查找依赖软件包.由于服务器中没有互联网连接,因此失败了.
例如:对于python-keystoneclient,我们有以下依赖包
stevedore (>=1.5.0)
six (>=1.9.0)
requests (>=2.5.2)
PrettyTable (<0.8,>=0.7)
oslo.utils (>=2.0.0)
oslo.serialization (>=1.4.0)
oslo.i18n (>=1.5.0)
oslo.config (>=2.3.0)
netaddr (!=0.7.16,>=0.7.12)
debtcollector (>=0.3.0)
iso8601 (>=0.1.9)
Babel (>=1.3)
argparse
pbr (<2.0,>=1.6)
Run Code Online (Sandbox Code Playgroud)
当我尝试从上面的列表中逐个安装软件包时,再次寻找嵌套依赖项.
有没有什么办法可以列出所有依赖包来安装像python-keystoneclient这样的python模块.
我在PyPi上有一个软件包,在准备一个新版本时,我构建了源代码分发,构建了轮子并上传,所有这些都使用了setuptools.
但是,我发现它只上传了upload命令(python和python3)中使用的Python版本的轮子.
以下是我要采取的步骤:
python3 setup.py sdist
python3 setup.py bdist_wheel --universal
python3 setup.py sdist bdist_wheel upload
Run Code Online (Sandbox Code Playgroud)
根据Python包装用户指南:
"Universal Wheels"是纯Python的轮子(即不包含编译的扩展)并支持Python 2和3
所以这似乎对我来说是正确的.
在轮子构建步骤之后,我验证了轮子是否已构建并具有文件名格式PACKAGE-VERSION-py2.py3-none-any.whl,dist但是当我运行上载时python3 setup.py sdist bdist_wheel upload,它会创建PACKAGE-VERSION-py3-none-any.whl并上传它.
如果我运行python setup.py sdist bdist_wheel upload它也会执行相同的操作并上传Python 2-only.