它是可以接受的,安全的点子下运行sudo的安装?它是可以接受的,安全的点子下运行sudo的安装?(I

2019-05-06 06:54发布

我已经开始使用我的Mac以同样的方式我在工作中我的Windows PC做安装Python包; 但是我的Mac上我遇到频繁的权限被拒绝的错误,同时写入日志文件或站点包。

所以我觉得有关运行pip install <package>sudo ,但就是下我的当前用户帐户安装考虑,我只是想这是一个安全/可接受使用sudo的吗?

从日志文件示例回溯I / O错误:

Command /usr/bin/python -c "import setuptools;__file__='/Users/markwalker/build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/tq/hy1fz_4j27v6rstzzw4vymnr0000gp/T/pip-k6f2FU-record/install-record.txt failed with error code 1 in /Users/markwalker/build/pycrypto
Storing complete log in /Users/markwalker/Library/Logs/pip.log
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 8, in <module>
    load_entry_point('pip==1.1', 'console_scripts', 'pip')()
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/__init__.py", line 116, in main
    return command.main(args[1:], options)
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 141, in main
    log_fp = open_logfile(log_fn, 'w')
  File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 168, in open_logfile
    log_fp = open(filename, mode)
IOError: [Errno 13] Permission denied: '/Users/markwalker/Library/Logs/pip.log'

更新这很可能下降到权限,但最好的方法是使用虚拟环境为您的Python项目。 运行sudo pip应该避免,除非绝对必要的。

Answer 1:

使用虚拟环境 :

$ virtualenv myenv
.. some output ..
$ source myenv/bin/activate
(myenv) $ pip install what-i-want

您只使用sudo时候你要安装的东西,为全球,全系统的Python安装或提升的权限。

最好是使用哪个适合你的包隔离的虚拟环境。 这样,你可以玩,不污染全球蟒蛇安装。

作为奖励,virtualenv中并不需要提升的权限。



Answer 2:

是否可以接受及安全运行pip installsudo

这不是安全,它正在皱眉-看到什么是运行“须藤点子”的风险? 要在你的home目录安装Python包你不需要root权限。 见描述的--user选项点子。



Answer 3:

你原来的问题是,PIP不能日志写入该文件夹。

IOError: [Errno 13] Permission denied: '/Users/markwalker/Library/Logs/pip.log'

你需要cd到其中调用的过程可以编写一个文件夹/tmp所以cd /tmp ,并重新调用命令可能会工作,但不是你想要的。

实际上对于这种特殊情况下(你不想使用sudo安装Python包),且无需全局包安装就可以使用--user标志是这样的:

pip install --user <packagename>

它会工作得很好。

我假设你有一个用户蟒蟒安装,不想阅读打扰的virtualenv (这是不是很用户友好的)或pipenv 。

正如一些人在评论部分人士指出,在未来的做法是不是一个很好的主意,除非你不知道做什么,并卡住了:

你的情况,你想要做的事就像全球封装另一种方法:

chown -R $USER /Library/Python/2.7/site-packages/

或者更一般

chown -R $USER <path to your global pip packages>


Answer 4:

因为我有同样的问题,我想强调一点,实际上是由第一评论布赖恩·该隐是解决了“IO错误:[错误13]” -问题:

如果在临时目录(执行cd /tmp )中,IO错误不会了,如果我运行出现sudo pip install foo



Answer 5:

它看起来像你的权限被搞砸了。 键入chown -R markwalker ~在终端和尝试pip一次? 让我知道你是否排序。



Answer 6:

我有安装问题virtualenvwrapper在成功安装virtualenv

我这样做后,我的终端抱怨:

pip install virtualenvwrapper

所以,我没有成功尝试这样做(不推荐):

sudo pip install virtualenvwrapper

然后,我成功地与此安装了它:

pip install --user virtualenvwrapper


文章来源: Is it acceptable and safe to run pip install under sudo?