在本地安装python软件包的最简单方法是什么?


32

我不想为本地Python安装处理virtualenv,我只想在本地安装一些软件包而不处理PYTHONPATH环境变量,我该怎么做?


您说“与……打交道”,好像virtualenv很麻烦。我发现完全相反。(也许你想--system-site-packages?)
安德烈亚斯Klöckner的

假设是这样的:) virtualenv很棒,但并不适合所有用例。
阿隆·艾玛迪亚

Answers:


48

Python(从2.6和3.0开始)现在在〜/ .local目录中搜索本地安装,而本地安装不需要管理特权,因此您只需将安装程序指向该目录即可。

如果您已经下载了该软件包foo并想手动安装,请键入:

cd path/to/foo
python setup.py install --user

如果您使用的是easy_install,并且想要下载并安装软件包:

easy_install --prefix=$HOME/.local/ foo

由RafiK更新

pip install --user foo

提供以下答案是出于历史目的: 如果使用pip下载和安装,则需要做更多的工作:

pip install --install-option="--prefix=$HOME/.local" foo

3
更新:pip现在支持--user标志:(pip install --user SomePackage 链接至手册)使用此命令,即使在不同的OS上,所有内容也应
立即可用

5

即使我喜欢Python作为一种语言,但分发Python程序包还是一团糟。我总会发现不熟悉Python的人对此感到困惑。

在Aron概述的用户本地安装(使用--user或--prefix)旁边,另一个选项是EasyBuild(http://hpcugent.github.com/easybuild/)。不仅适用于Python软件包,还适用于任何(科学)软件包。一旦EasyBuild支持它,构建和安装软件包基本上就是一个命令。

有关当前支持的软件包列表,请参阅https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packages

免责声明:我是EasyBuild的开发人员。


2

@Aron:确保将本地站点软件包路径添加到环境变量$ PYTHONPATH中


从Python 2.6和Python 3.0开始,它会自动包含在站点路径中:)
Aron Ahmadia

@AronAhmadia如果您使用该--prefix选项,则不会。
Jens Timmerman

@JensTimmerman-站点路径是Python在启动模块导入时的外观,无论您何时运行Python。prefix选项指定在安装Python软件包时将给定软件包安装在何处。两个完全独立的概念。
阿隆·艾玛迪亚

@AronAhmadia是的,我的意思是,当您使用easy_install --prefix = / tmp时,需要在您的PYTHONPATH变量中添加“ /tmp/lib/pythonx.x/site-packages”,否则它将不会被python接收。
Jens Timmerman 2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.