IOError: [Errno 13] Отказано в доступе: '/usr/local/lib/python2.7/dist-packages/finsymbols/SP500.html'

Я установил пакет finsymbols в python с помощью

pip install finsymbols

установка прошла нормально. Но когда я попытался работать с этим, возникла ошибка, говорящая об отказе в доступе. Код, который я пробовал,

>>>import finsymbols
>>>sp500 = finsymbols.get_sp500_symbols()
    Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/finsymbols/symbols.py", line 8, in get_sp500_symbols
    page_html = wiki_html('List_of_S%26P_500_companies', 'SP500.html')
  File "/usr/local/lib/python2.7/dist-packages/finsymbols/symbol_helper.py", line 94, in wiki_html
    save_file(file_path, wiki_html)
  File "/usr/local/lib/python2.7/dist-packages/finsymbols/symbol_helper.py", line 39, in save_file
    saved_file = open(file_path, "w")
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/finsymbols/SP500.html'

может ли кто-нибудь помочь мне в решении этого? Спасибо


person Bhargav    schedule 31.01.2017    source источник


Ответы (2)


Причина ошибки в том, что у вас нет прав на запись в папку пакета finsymbols.

Предоставьте папке доступ на запись и повторите попытку:

sudo chmod a+w /usr/local/lib/python2.7/dist-packages/finsymbols

Если вы не хотите предоставлять доступ к этой папке, запустите свой python от имени пользователя root.

person greedy52    schedule 31.01.2017
comment
Спасибо . ранее я пробовал sudo chmod +w /usr/local/lib/python2.7/dist-packages/finsymbols/SP500.html. Но это не сработало. Это что-то вроде того, что я могу дать разрешения только на изменение папок ?? - person Bhargav; 31.01.2017
comment
Да. Изменение разрешения применяется только к папке. Теперь, если вы добавите файл в эту папку, вы увидите, что владельцем файла, который вы добавили, является ваш текущий пользователь. Таким образом, каждый файл по-прежнему имеет свое собственное разрешение. Если вы хотите изменить все файлы внутри этой папки, вы можете добавить параметр -R при запуске chmod для рекурсивного обновления разрешений для всех файлов и папок внутри. - person greedy52; 31.01.2017
comment
Большое спасибо. это имеет смысл :) - person Bhargav; 31.01.2017

Лучшим подходом было бы использование virtualenv Это позволило бы вам установить любой пакет, не требуя повышенные разрешения.

Вы можете получить краткое руководство, посетив https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/

person Skillachie    schedule 03.03.2017