试图运行一个Python包权限被拒绝 [英] Permission Denied while trying to run a Python package

查看:2036
本文介绍了试图运行一个Python包权限被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆