我有一个外部包,我想从 tar 文件安装到我的 python virtualenv 中。安装软件包的最佳方法是什么?
我发现了两种方法可以做到这一点:
- 提取 tar 文件,然后
python setup.py install
在提取的目录中运行。 pip install packagename.tar.gz
来自https://pip.pypa.io/en/stable/reference/pip_install/#examples中的示例 7
以这两种方式做它们是否有任何区别。
我有一个外部包,我想从 tar 文件安装到我的 python virtualenv 中。安装软件包的最佳方法是什么?
我发现了两种方法可以做到这一点:
python setup.py install
在提取的目录中运行。pip install packagename.tar.gz
来自https://pip.pypa.io/en/stable/reference/pip_install/#examples中的示例 7以这两种方式做它们是否有任何区别。
从表面上看,两者都在做同样的事情:要么做要么python setup.py install
会pip install <PACKAGE-NAME>
为你安装你的 python 包,用最少的麻烦。
但是,使用 pip 提供了一些额外的优势,使其更好用。
setup.py
,则经常需要手动搜索并下载依赖项,这既繁琐又令人沮丧。pip uninstall <PACKAGE-NAME>
和pip install --upgrade <PACKAGE-NAME>
. 相反,如果您使用 安装包setup.py
,如果您想摆脱它,则必须手动删除和维护包,这可能容易出错。setup.py
,你必须访问该库的网站,找出在哪里下载它,解压文件,运行setup.py
......相反,pip 将自动搜索Python 包索引(PyPi)以查看包是否存在于那里,并且将自动为您下载、解压和安装该软件包。除了少数例外,几乎每一个真正有用的 Python 库都可以在 PyPi 上找到。virtualenv
该程序允许您在计算机上运行多个需要冲突库和 Python 版本的项目。更多信息。所以基本上,使用 pip。它仅提供对使用的改进python setup.py install
。
如果您使用的是旧版本的 Python,无法升级,并且没有安装 pip,您可以在以下链接中找到有关安装 pip 的更多信息:
pip 本身并不需要教程。90% 的情况下,您真正需要的唯一命令是pip install <PACKAGE-NAME>
. 也就是说,如果您有兴趣了解更多关于您可以使用 pip 做什么的详细信息,请参阅:
通常还建议您将 pip 和 virtualenv 一起使用。如果你是 Python 的初学者,我个人认为从使用 pip 开始并在全局范围内安装包是可以的,但最终我确实认为你应该在处理更严肃的项目时过渡到使用 virtualenv。
如果您想了解更多关于同时使用 pip 和 virtualenv 的信息,请参阅:
python setup.py install
是 make install 的类比:它是一种将文件编译和复制到目标目录的有限方法。这并不意味着它是在您的系统上真正安装软件的最佳方式。
pip
是一个包管理器,它可以安装、升级、列出和卸载包,就像熟悉的包管理器包括:dpkg, apt, yum, urpmi, ports
等等。在后台,它会运行python setup.py install
,但有特定的选项来控制最终安装的方式和位置。
总结:使用pip
.
问题是关于安装包含 python 包的本地 tarball 的首选方法,而不是关于将包上传到 PyPi 等索引服务的优势。
As lest I know some software distributor does not upload their package to PyPi, instead asking developers to download package from their website and install.
python setup.py install
This can work but not recommended. It's not necessary to unwrap the tarball file and go into it to run setup.py file.
pip install ../path/to/packagename.tar.gz
This is the way designed and preferred. Concise and align with PyPi-style packages.
More information about pip install
can be found here: https://pip.readthedocs.io/en/stable/reference/pip_install/