web-dev-qa-db-ja.com

pandas.DataFrameのインポート時に「IOError:[Errno 13] Permission denied:..」を取得する

私は得ています

IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/python_dateutil-2.2-py2.7.Egg/EGG-INFO/top_level.txt'

パンダをインポートしようとしているとき。理由はわかりません。 python3コンソールでのpandasのインポートは正常に動作します。コードの実行はPython3でも行われます

start_simulation.py

from Market import Market
from TestingAlgorithm import TestingAlgorithm
from LiteForexHandler import LiteForexHandler
from Broker import Broker
from Portfolio import Portfolio

market = Market('./simulations/', 'test', TestingAlgortihm, LiteForexHandler,
    Broker, Portfolio)
market.run()`

開始LiteForexHandler.py

import sqlite3 as lite
from pandas import DataFrame
from DataHandler import DataHandler
import logging as log
from collections import defaultdict
...

そして最後にTraceback

Traceback (most recent call last):
  File "start_simulation.py", line 3, in <module>
    from LiteForexHandler import LiteForexHandler
  File "/home/ioan/Dokumente/finance/stocker/LiteForexHandler.py", line 2, in <module>
    from pandas import DataFrame
  File "/usr/local/lib/python2.7/dist-packages/pandas-0.13.1_501_g4c3b9e5-py2.7-linux-x86_64.Egg/pandas/__init__.py", line 38, in <module>
    import pandas.core.config_init
  File "/usr/local/lib/python2.7/dist-packages/pandas-0.13.1_501_g4c3b9e5-py2.7-linux-x86_64.Egg/pandas/core/config_init.py", line 17, in <module>
    from pandas.core.format import detect_console_encoding
  File "/usr/local/lib/python2.7/dist-packages/pandas-0.13.1_501_g4c3b9e5-py2.7-linux-x86_64.Egg/pandas/core/format.py", line 9, in <module>
    from pandas.core.index import Index, MultiIndex, _ensure_index
  File "/usr/local/lib/python2.7/dist-packages/pandas-0.13.1_501_g4c3b9e5-py2.7-linux-x86_64.Egg/pandas/core/index.py", line 11, in <module>
    import pandas.index as _index
  File "index.pyx", line 34, in init pandas.index (pandas/index.c:15559)
  File "/usr/local/lib/python2.7/dist-packages/pytz-2014.2-py2.7.Egg/pytz/__init__.py", line 29, in <module>
    from pkg_resources import resource_stream
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2823, in <module>
    add_activation_listener(lambda dist: dist.activate())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 710, in subscribe
    callback(dist)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2823, in <lambda>
    add_activation_listener(lambda dist: dist.activate())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2255, in activate
    self.insert_on(path)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2362, in insert_on
    self.check_version_conflict()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2401, in check_version_conflict
    for modname in self._get_metadata('top_level.txt'):
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2249, in _get_metadata
    for line in self.get_metadata_lines(name):
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1219, in get_metadata_lines
    return yield_lines(self.get_metadata(name))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1211, in get_metadata
    return self._get(self._fn(self.Egg_info,name))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1326, in _get
    stream = open(path, 'rb')
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/python_dateutil-2.2-py2.7.Egg/EGG-INFO/top_level.txt'
8
kave

これはpypiパッケージで権限が正しく設定されていないpython-dateutilの既知の問題です https://bugs.launchpad.net/dateutil/+bug/1243202 。 pipは権限を正規化するため、これはpipの問題ではありませんが、異なる方法でインストールすると、問題が発生する可能性があります。

簡単な解決策は実行することです

Sudo chmod o+r /usr/local/lib/python2.7/dist-packages/python_dateutil-2.2-py2.7.Egg/EGG-INFO/top_level.txt

そして、dist-packagesディレクトリーにあるこの問題で遭遇する他のファイルに対する同じコマンド。

14
szxk

私のマシンでも同様の問題が発生していました。サイトパッケージディレクトリに何も書き込むことができなかったため、Pipは何もインストールできませんでした。これに恋していないが、私は走ったSudo chown -R $USER /Library/Python/2.7/site-packages/そして今、Pipは私のサイトパッケージディレクトリへの書き込みに問題はありません。

1

私の場合:

Sudo chmod o+r /usr/local/lib/python2.7/dist-packages/python_dateutil-2.2-py2.7.Egg/EGG-INFO/top_level.txt

一般に:

Sudo chmod o+r [XXX]

ここで、XXXはそれが指しているファイルです。

0
user1854182