在sudo下运行pip安装是否可以接受?
我已经开始使用我的Mac来安装python软件包,就像我在使用Windows PC时一样,但是在我的Mac上,我经常遇到permission denied
写入日志文件和写入站点包的错误。
因此,我想在sudo
下运行pip install <package>
,但是这是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'
更新我可以安装,如果我使用sudo pip install
因为我有同样的问题,所以我想强调的是,实际上Brian Cain的第一个评论是解决“IOError:[Errno 13]”的问题:
如果在临时目录( cd /tmp
)中执行,如果我运行sudo pip install foo
,则不会再发生IOError。
使用虚拟环境 :
$ virtualenv myenv .. some output .. $ source myenv/bin/activate (myenv) $ pip install what-i-want
当您想要安装全局的系统级Python安装时,您只能使用sudo
或提升的权限。
最好使用虚拟环境,为您隔离包装。 这样你就可以玩弄,而不会污染全球的Python安装。
作为奖励,virtualenv不需要提升权限。
在
sudo
下运行pip install
是否可以接受?
这是不安全的,它是皱眉 – 看看运行'sudo点'有什么风险? 要在您的主目录中安装Python包,您不需要root权限。 请参阅 – 用户选项的描述来点。
实际上,对于这种特殊的情况(你不想使用sudo
来安装python包),也不需要安装全局包,你可以使用--user
标志,像这样:
pip install --user <packagename>
它会工作得很好。
另一种全球性软件包的方法就像你想要做的那样:
chown -R $USER /Library/Python/2.7/site-packages/
或更一般地说
chown -R $USER <path to your global pip packages>
它看起来像你的权限搞砸了。 在terminalinputchown -R markwalker ~
再次尝试pip
? 让我知道你是否sorting。
在成功安装virtualenv
后,我安装了virtualenv
。
我terminal抱怨后,我这样做:
pip install virtualenvwrapper
所以,我没有成功尝试这个( 不推荐 ):
sudo pip install virtualenvwrapper
然后,我用这个成功安装了它:
pip install --user virtualenvwrapper