2016-08-04 7 views
0

これはヘッドスクラッチャーです。私はIpythonのノートブックとPythonコードのディレクトリを持っています。どういうわけか、パンダをインポートしようとすると、パンダファイルの1つが実行しようとすると、実行によってインポートが爆撃されます。パンダをインポートするとAnaconda pythonがディレクトリ内のpythonファイルを実行します

何らかの理由Ipythonの代わりに、Pythonの作品を使用して
[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 

[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ハブを使用して、任意のカーネルに接続することはできませんより多くのすごみを追加します。

EDIT:parser.pyというファイルがある場合、このマシンのどこにでもpandasをインポートすることができます。問題は私のラップトップでは起こりません。このマシンには、私のノートパソコンにはないアナコンダがあります。私は問題を解決する方法については解決策がありません。

+1

'path/parser.py'の名前を変更するとどうなりますか? – MattDMo

+0

はいくつかの依存関係が満たされていないように見え、pandasは自動的にそれらを解決しようとしますが失敗します。しかし、これらの依存関係はipythonで満たされます。 – rikisa

+0

path/parser.pyの名前を変更すると、インポートが機能します。 – deltap

答えて

0

これは、Pythonの仕組み、Pythonのパスの仕組み、Pythonのインポートの仕組みなどの症状です。簡単な答えは、あなたがインポートするライブラリから呼び出されるpythonファイルと同じ名前を持つファイルをPythonパスに入れることができないということです。これは名前の衝突を引き起こし、現在のディレクトリが最初のpythonパスにあるため、間違ったファイルを依存関係として使用しようとします。これがあなたの利点に使用できる1つの方法は、ライブラリ全体を変更することなく、ライブラリ内の特定のファイルにホットパッチを適用する場合です。

関連する問題