我已经开始用我的Mac电脑来安装Python软件包,就像我在工作时使用Windows PC一样;然而,在我的Mac电脑上,我在写入日志文件或网站包时经常遇到权限被拒绝的错误
因此,我考虑运行pip安装<;包装>在sudo下,但考虑到我只想在我当前的用户帐户下安装sudo,这是安全/可接受的sudo使用方式吗
日志文件I/O错误的回溯示例:
Command/usr/bin/python-c“导入setuptools;uuuu文件uuu=”/Users/markwalker/build/pycrypto/setup.py';exec(编译(打开(uuu文件uuuu).read().replace('\r\n','\n'),uuuu文件uuu,'exec'))安装--外部管理的单一版本--record/var/folders/tq/hy1fz_4j27v6rstzw4vymnr0000gp/T/pip-k6f2FU-record/install-record.txt失败,错误代码为/Users/markwalker/build/pycrypto中的1
存储完整的登录/Users/markwalker/Library/Logs/pip.log
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/pip”,第8行,in<;模块>;
加载入口点('pip==1.1','console\u scripts','pip')()
文件“/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/_init___;u.py”,第116行,在main中
return命令.main(args[1:],选项)
文件“/Library/Python/2.7/site packages/pip-1.1-py2.7.egg/pip/basecommand.py”,第141行,在main中
log\u fp=打开日志文件(log\u fn,'w')
文件“/Library/Python/2.7/site packages/pip-1.1-py2.7.egg/pip/basecommand.py”,第168行,在open_日志文件中
log_fp=打开(文件名,模式)
IOError:[Errno 13]权限被拒绝:'/Users/markwalker/Library/Logs/pip.log'
这可能取决于权限,但是最好的方法是为python项目使用虚拟环境。除非绝对必要,否则应避免运行sudo pip
使用虚拟环境:
$virtualenv myenv
.. 一些输出。。
$source myenv/bin/activate
(myenv)$pip安装我想要的
当您想要安装全局、系统范围的Python安装时,您只能使用sudo或提升权限
最好使用为您隔离软件包的虚拟环境。这样,您就可以在不污染全局python安装的情况下进行操作
另外,virtualenv不需要提升权限