我已经开始用我的苹果电脑安装Python包,就像我在工作中用我的视窗电脑一样;然而在我的苹果电脑上,我在写入日志文件或站点包时经常遇到权限拒绝错误。
因此我考虑运行pip安装
日志文件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。
您最初的问题是pip无法将日志写入文件夹。
IOError: [Errno 13] Permission denied: '/Users/markwalker/Library/Logs/pip.log'
你需要cd到一个文件夹中,其中调用的进程可以写像/tmp
这样一个cd /tmp
和重新调用命令可能会工作,但不是你想要的。
但实际上,对于这种特殊情况(您不想使用sudo
安装python软件包),并且不需要全局软件包安装,您可以使用--user
标志,如下所示:
pip install --user <packagename>
它会很好的工作。
我假设你有一个一个用户的python python安装,不想费心阅读虚拟环境(这不是非常用户友好)或pipenv。
正如评论部分的一些人指出的那样,下一种方法不是一个很好的主意,除非你不知道该做什么并且陷入困境:
另一种适用于全局包的方法,如在您的案例中,您希望执行以下操作:
chown -R $USER /Library/Python/2.7/site-packages/
或者更一般地说
chown -R $USER <path to your global pip packages>
可以接受吗
这是不安全的,它是不赞成的-看看运行'sudo pip'的风险是什么?要在主目录中安装Python包,您不需要根权限。请参见pip的--user
选项的说明。
使用虚拟环境:
$ virtualenv myenv
.. some output ..
$ source myenv/bin/activate
(myenv) $ pip install what-i-want
只有当你想要为全局的、系统范围的Python安装安装东西时,才使用sudo
或提升的权限。
最好使用为您隔离软件包的虚拟环境。这样,您就可以在不污染全局python安装的情况下进行操作。
另外,virtualenv不需要提升权限。
我正在Docker中制作python Django应用程序的简单图像。但是在构建容器的末尾,它抛出了下一个警告(我正在Ubuntu 20.04上构建):
很抱歉我缺乏知识,但我正在尝试在Tensorflow上运行示例: 我得到了以下错误消息:PermissionDeniedError:删除文件失败: C:\用户\Jeff\AppData\本地\Temp\tmpgpmjek44\graph.pbtxt.tmpe31b9f4677cb426fbaef32dadeaf1a4d;权限被拒绝 我发现错误来自行estimator.train(input_fn=
问题内容: 我正在使用Python在系统级别的Linux中进行项目。因此,我想知道,如果我以普通用户身份运行代码,并且正在访问系统文件,那么它应该具有root权限,那么我如何提示输入root密码并以超级用户身份运行其他代码。我想知道,如何以超级用户身份以密码提示运行python脚本。 任何帮助将不胜感激。先感谢您.. 问题答案: 您可以做的另一件事是,如果脚本不是以root身份执行的,则脚本会自动
我使用Ansible安装了Nginx。要在Centos7上安装,我使用了yum软件包,因此默认情况下它是以root用户身份运行的。我希望它在Centos中以不同的用户(前nginx用户)身份启动和运行。当我尝试与其他用户一起运行时,会出现以下错误: nginx的工作。服务失败,因为控制进程已退出,错误代码为。有关详细信息,请参阅“systemctl status nginx.service”和“j
我正在尝试使用谷歌首选的“工作负载身份”方法,使我的GKE应用程序能够安全地访问谷歌机密中的机密。 我已经完成了设置,甚至检查了故障排除部分的所有步骤(https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity?hl=sr-ba#故障排除)但我的日志中仍然出现以下错误: 未处理的异常。Grpc。果心RpcExce
问题内容: 我正在我的Linux计算机上尝试运行Elasticsearch 2.1.1。 当我尝试执行Elasticsearch时,出现以下错误: 我提到了互联网上的一些建议,他们提到要以其他用户身份运行它。我的情况是仅以root用户身份运行。如何在不以其他用户身份运行的情况下解决此问题。 问题答案: 根据以下代码片段, 您应该可以通过启用属性 es.insecure.allow.root 来实现