试图运行一个Python包权限被拒绝 [英] Permission Denied while trying to run a Python package
问题描述
我想要一个AWS EC2计算机上使用一个名为 csvkit
Python包。我可以一些麻烦,这可能与后安装 - 运行 PIP在
I'm trying to use a Python package called csvkit
on an AWS EC2 machine. I was able to install it after some hiccups, which might be related - running pip install csvkit
threw an error at
with open(path, 'rb') as stream:
IOERROR: [Errno 13] Permission denied: '/usr/local/lib/python2.7/site-packages/python_dateutil-2.2-py2.7.egg/EGG-INFO/requires.txt'
不过,我能够与其他一些命令来安装它。
But I was able to install it with some other command.
现在到了原来的问题 - 当我尝试运行 csvkit
包像在一个简单的功能cavstat
,这是完全错误输出:
Now onto the original problem - when I try to run a simple function within the csvkit
package like cavstat
, this is the full error output:
[username ~]$ csvstat
Traceback (most recent call last):
File "/usr/local/bin/csvstat", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3020, in <module>
working_set = WorkingSet._build_master()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 614, in _build_master
ws.require(__requires__)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 920, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 815, in resolve
new_requirements = dist.requires(req.extras)[::-1]
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2552, in requires
dm = self._dep_map
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2537, in _dep_map
for extra, reqs in split_sections(self._get_metadata(name)):
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2978, in split_sections
for line in yield_lines(s):
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2252, in yield_lines
for ss in strs:
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2566, in _get_metadata
for line in self.get_metadata_lines(name):
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 1589, in get_metadata_lines
return yield_lines(self.get_metadata(name))
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 1581, in get_metadata
return self._get(self._fn(self.egg_info, name))
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 1692, in _get
with open(path, 'rb') as stream:
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/site-packages/python_dateutil-2.2-py2.7.egg/EGG-INFO/requires.txt'
我不知道是什么,甚至搜索,看看有什么问题。这是关系到日期-utils的
?
我是相当新的Linux世界,所以编辑配置文件和诸如此类的东西是有点为难我。
I'm not sure what to even search to see what's the issue. Is this related to date-utils
?
I'm fairly new to the Linux world, so editing configuration files and whatnot is a bit difficult for me.
推荐答案
如果你正在做一个全系统通过PIP安装csvkit安装,你需要sudo的权限,为当前用户,这也是为什么安装过程borked上修改/usr/local/lib/python2.7结构。
If you're doing a system-wide install via 'pip install csvkit', you'll need sudo privileges for the current user, which is why the install process has borked on modifying the /usr/local/lib/python2.7 structure.
如果你在你已经创建了一个AWS实例,sudo的权限应该是pretty的简单的设置是当前的用户。
If you're on an AWS instance you've created, sudo privileges should be pretty straightforward to set up for your current user.
如果你正在寻找一个更包含的替代方案,你可以安装的virtualenv并成立一个独立的virtualenv(的 https://virtualenv.pypa.io/en/latest/installation.html ),但的virtualenv可能是矫枉过正暴殄天物服务器。
If you're looking for a more contained alternative, you could install virtualenv and set up an isolated virtualenv (https://virtualenv.pypa.io/en/latest/installation.html) but virtualenv might be overkill for a throwaway server.
这是否帮助呢?
这篇关于试图运行一个Python包权限被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!