2016-08-04 9 views
0

Это головной скребок. У меня есть каталог с ноутбуками Ipython и кодом python. Как-то, когда я пытаюсь импортировать панды, один из файлов pandas пытается выполнить, выполнение вызывает импорт бомбы.Anaconda python выполняет файл python в каталоге при импорте pandas

[path]$ python 
Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul 2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import pandas as pd 
WARNING: No route found for IPv6 destination :: (no default route?). This affects only IPv6 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/anaconda3/lib/python3.5/site-packages/pandas/__init__.py", line 13, in <module> 
    __import__(dependency) 
    File "/usr/local/anaconda3/lib/python3.5/site-packages/pytz/__init__.py", line 29, in <module> 
    from pkg_resources import resource_stream 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 664, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible 
    File "/usr/local/anaconda3/lib/python3.5/site-packages/setuptools-20.3-py3.5.egg/pkg_resources/__init__.py", line 71, in <module> 
    File "path/parser.py", line 62, in <module> 
    file_temp = sys.argv[1] 
IndexError: list index out of range 

Использование IPython вместо питона работ по каким-либо причинам:

[path]$ ipython 
Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul 2 2016, 17:53:06) 
Type "copyright", "credits" or "license" for more information. 

IPython 5.0.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

In [1]: import pandas as pd 

In [2]: 

Чтобы добавить больше странность я не могу подключиться к любому ядер с помощью jupyter хаб в этом каталоге.

РЕДАКТИРОВАТЬ: Кажется, проблема связана с импортом панд в любом месте на этом компьютере, если есть файл parser.py. Проблема не возникает на моем ноутбуке. У этой машины нет анаконды у моего ноутбука нет. Однако у меня нет решения о том, как исправить проблему.

+1

Что произойдет, если вы переименуете 'path/parser.py'? – MattDMo

+0

похоже, что некоторые зависимости не выполняются, и pandas пытается автоматически их разрешать, но терпит неудачу. Однако эти зависимости удовлетворяются для ipython. – rikisa

+0

Если я переименую путь/parser.py, то импорт будет работать. – deltap

ответ

0

Это, по-видимому, является признаком того, как работает python, как работают пути в python и как импортируются в python. Короткий ответ заключается в том, что у вас не может быть файла на вашем пути python, который имеет то же имя, что и файл python, вызванный из импортируемой библиотеки. Это создает столкновение имен, и поскольку текущий каталог является первым в пути python, он попытается использовать неправильный файл в качестве зависимости. Одним из способов, которым это может быть использовано в ваших интересах, является то, что вы хотите, чтобы hot patch установил определенный файл в библиотеке, не изменяя всю библиотеку.

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