如何在专用网络中安装 python 个软件包

How to install python packages in a private network

我是一名经验丰富的程序员,但对 python 还是个新手。我的公司要求我们为我们的一些项目在专用网络上进行开发。专用网络上有一个 pypi 索引,可用于使用 pip 安装包。最近需要安装一个包,pypi index down了,宕机了好几个小时。尽管它最终确实恢复了,但情况引出了一个问题,在没有索引的情况下如何安装包(可能是手动而不是 pip)?我试过 google 这个,但一无所获。我确定有办法,但我可能没有在寻找正确的短语。感谢您的帮助。

有几种方法可以解决此问题。我知道的两个是:

  1. 使用代理访问标准 PyPI。如果你的公司允许,那么你可以通过他们的代理隧道传输你的流量,并从 PyPA 的标准位置安装包。

  2. 使用本地托管的索引。您只需要一个结构类似于 https://pypi.org/simple/ 的目录,然后您可以 pip install -i ~/my/personal/index/path 并从那里安装软件包。

如果您对软件包存储库具有读取权限,则可以手动安装 Python 个软件包。每个 Python 包的根目录中都有一个 setup.py 文件,您可以执行类似

的操作
python setup.py sdist

这将创建一个名为 dist 的子目录,其中包含一个压缩存档文件,tar.gz.zip,具体取决于您的 OS。您可以将此存档文件传递给 pip 并安装软件包

pip3 install some-python-package.tar.gz

我会下载 wheel 并安装它。为此,您需要安装 wheel 包:

pip install wheel

然后你可以告诉 pip 安装项目(如果可用的话它会下载 wheel),或者直接下载 wheel 文件:

pip install project_name  # download and install
pip install wheel_file.whl  # directly install the wheel

wheel 模块也可以从命令行运行,您可以使用它来安装 already-downloaded wheels:

python -m wheel install wheel_file.whl