2015-09-30 3 views
1

Я пытаюсь использовать пакет Python под названием csvkit на машине AWS EC2. Я был в состоянии установить его после того, как некоторые икота, которые могут быть связаны - бег pip install csvkit бросил ошибку вРазрешение Отказано при попытке запуска пакета Python

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' 

Но я был в состоянии установить его с помощью какой-либо другой команды.

Теперь на исходную проблему - когда я пытаюсь запустить простую функцию в csvkit пакете как cavstat, это полный выход ошибки:

[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' 

Я не уверен, что даже поиск, чтобы увидеть В чем проблема. Связано это с date-utils? Я довольно новичок в мире Linux, поэтому редактирую файлы конфигурации и многое другое для меня.

+0

Вы пытались 'chomd u + rw/usr/local/lib/python2.7/site-packages/python_dateutil-2.2-py2.7.egg/EGG-INFO/require.txt'. –

+1

Пробовал и получил 'невозможно получить доступ '/usr/local/lib/python2.7/site-packages/python_dateutil-2.2-py2.7.egg/EGG-INFO/re quires.txt' Нет такого файла или каталога' – simplycoding

ответ

1

Если вы используете общесистемную установку через «pip install csvkit», вам понадобятся права sudo для текущего пользователя, поэтому процесс установки был обработан при изменении/usr/local/lib/python2.7.

Если вы используете экземпляр AWS, который вы создали, sudo-привилегии должны быть достаточно простыми для настройки для вашего текущего пользователя.

Если вы ищете альтернативную альтернативу, вы можете установить virtualenv и настроить изолированный virtualenv (https://virtualenv.pypa.io/en/latest/installation.html), но virtualenv может быть излишним для серверного сервера.

Это вообще помогает?

+0

Да, это определенно помогает. Поэтому после поиска того, как добавить ec2-пользователя к привилегиям sudo, я столкнулся с этим: http://serverfault.com/questions/599357/how-does-amazon-ec2-user-get-its-sudo-rights , Я должен удалить эту последнюю строку? – simplycoding

+0

Если вы хотите предоставить полные привилегии ec2-пользователя без необходимости ввода пароля, вы можете добавить следующую строку: ec2-user ALL = (ALL) NOPASSWD: ALL – kevinpowe

+0

Кроме того, пренебречь упоминанием в предыдущем комментарии: используйте ' visudo 'как root, чтобы добавить эти привилегии. Также возможно просто использовать пользователя root для установки пакетов, но это означает, что пользователи постоянно выскакивают вперед и назад. Это одноразовое изменение, чтобы сделать жизнь намного проще. – kevinpowe

Смежные вопросы