我想知道是否有一种标准方法可以使用 pip 安装 python 应用程序(不使用 sudo)以使其在全球范围内运行?
例子:
我想使用 pip 安装一个名为 jrnl 的命令行日志应用程序。如果您执行“sudo pip install jrnl”,它会正常工作,但是,我猜这是一种令人尴尬的方法。
如果我不使用 sudo 仅使用“pip install jrnl”进行安装,它会安装在 .local/ 中而没有全局访问权限。
我已经找到了几种方法可以做到这一点,但想知道是否有一种常见的、可接受的安全方法?
谢谢!
答案1
它可以安装在路径中的任何位置。我发现的几个选项是:
安装至
.local
:pip install --user <pip-pkg-name>
- 这将按照您注意到的方式进行安装,
.local
因此位置需要在您的路径中,并使用.bashrc
可以完成的文件。 - 将其添加
export PATH=$PATH:/home/$USER/.local/bin
到您的/home/$USER/.bashrc
文件中。这样您就可以从任何地方访问它。
export PYTHONUSERBASE=/myappenv
在您的文件中使用此行添加自定义路径.bashrc
。现在当您这样做时pip install --user <pip-pkg-name>
它将安装在 中/myappenv
。- 请注意,您必须先创建该路径,然后使用以下行将
/myappenv
其添加到您的文件中.bashrc
export PATH=$PATH:/myappenv
- 请注意,您必须先创建该路径,然后使用以下行将
既然如此,您提到的所谓的标准方式应该用于
python environment a.ka. virtualenv
安装和运行该应用程序的包,而不是像上面(1)和(2)中那样全局安装和运行。- 使用 为 python2+ 安装
sudo pip install virtualenv
,或者使用 为 python 3+安装sudo pip3 install virtualenv
。 用法:
virtualenv venv
选择您喜欢的解释器:
- Python 2+:
virtualenv -p python2.7 venv
- Python 3+:
virtualenv -p python3 myenv
- Python 2+:
- 激活它:
source venv/bin/activate
- 停用它:
deactivate
- 使用 为 python2+ 安装
看:
http://kazhack.org/?post/2014/12/12/pip-gem-install-without-sudo,
https://gist.github.com/Geoyi/d9fab4f609e9f75941946be45000632b