2014-03-29 34 views
7

当我得到入门 “IO错误:[错误13]许可被拒绝:..” 进口pandas.DataFrame

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控制台中导入熊猫工作得很好。代码的执行与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 (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' 
+1

你可以尝试的一件事是将每个包安装在virtualenv中。出于某种原因,一个模块试图访问'/ usr/local/lib'中的一个文件,这是因为您没有以超级用户的身份运行脚本。 – elbear

+1

我推荐anaconda安装熊猫,你可以安装不带sudo的熊猫。 –

+0

我从python3-pandas软件包中的ubuntu存储库安装了熊猫...应该不是最好的方法吗? – kave

回答

12

这是python-dateutil在pypi包中权限设置不正确的已知问题: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目录这个问题遇到的任何其他文件相同的命令。

+0

有没有与上面的命令等价的窗口? –

+0

http://superuser.com/questions/106181/equivalent-of-chmod-to-change-file-permissions-in-windows – szxk

+0

谢谢你的szxk。我遇到了大量软件包的13错误,因此将命令更改为:sudo chmod -R o + r /Library/Python/2.7/site-packages以便一次获得所有这些命令。我认为没有什么奇怪的安装:只是一个点安装xyz,它仍然不喜欢它。 – Pete855217

1

我只是在我的机器上遇到类似的问题。皮普并没有让我的安装任何东西,因为没有什么可以写入我的网站包目录。不喜欢这个,但我跑sudo chown -R $USER /Library/Python/2.7/site-packages/现在Pip没有问题写入我的网站包目录。

+7

您可能应该调用'sudo pip install',以便pip可以写入共享目录,或者'pip install --user',这样它就不会尝试写入共享目录。 –

0

在我的情况:

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是它指向的文件。

相关问题