使用pip从本地文件夹为虚拟环境安装Python包

532 投票
14 回答
807664 浏览
提问于 2025-04-17 16:48

可以从本地文件系统使用pip安装包吗?

我已经运行了 python setup.py sdist 来打包我的项目,这样就生成了一个合适的tar.gz文件。这个文件保存在我的系统中,路径是 /srv/pkg/mypackage/mypackage-0.1.0.tar.gz

现在在一个虚拟环境中,我想安装的包可以来自pypi,也可以来自这个特定的本地位置 /srv/pkg

这样做可以吗?

附注 我知道我可以直接使用 pip install /srv/pkg/mypackage/mypackage-0.1.0.tar.gz 来安装。这是可行的,但我想知道能不能把 /srv/pkg 这个位置当作pip搜索的另一个地方,这样我只需输入 pip install mypackage 就能找到它。

14 个回答

109

安装包的页面上,你可以简单地运行下面的命令,其中/srv/pkg/mypackage是包含setup.py文件的文件夹。

pip install /srv/pkg/mypackage

另外1,你也可以从压缩文件中安装它。

pip install ./mypackage-1.0.4.tar.gz 

1虽然在问题中提到过,但由于它很受欢迎,所以也被包含在内。

587

那这个呢:

pip install --help
...
  -e, --editable <path/url>   Install a project in editable mode (i.e. setuptools
                              "develop mode") from a local project path or a VCS url.

比如说,pip install -e /srv/pkg

这里的 /srv/pkg 是一个文件夹的路径,里面有一个叫 'setup.py' 的文件。

237

我很确定你要找的这个功能叫做 --find-links 选项。

你可以这样做:

pip install mypackage --no-index --find-links file:///srv/pkg/mypackage

撰写回答