2015-02-11 103 views
0

我有一個包,打算導入文件的用戶(我)提供蟒蛇,其他目錄下的當前文件夾下的導入文件從一個文件

C:\ LIB \ calc.py

# some codes to find which file to import 
filename = "A" 
__import__(filename) 
... 

而且我有一個文件C:\腳本 \ A.py

注A.py是在不同的文件夾calc.py.現在,我應該這樣做下的命令窗口

cd C:\scripts 
python c:\lib\calc.py 

,但我得到一個錯誤信息

No module named A 

A.py是在當前文件夾,爲什麼蟒蛇會找不到呢?我如何使A.py可用?

謝謝。

+0

'而不只是'輸入A'?你的'sys.path'中有什麼? – 2015-02-11 14:01:27

+1

您可以將'scripts'目錄添加到您的PYTHONPATH環境變量中。 – 2015-02-11 14:04:10

+0

只有在運行時才知道「A」。我簡化了代碼,實際的命令就像「python c:\ lib \ calc.py --file A.py」 – jf328 2015-02-11 14:04:52

回答

1

您可以將腳本路徑添加到腳本calc.py中,以便找到A.py模塊。

import sys 
sys.path.append('C:\scripts') 
1

如果您使用Python 2.7或更高版本,則可以使用importlib軟件包。 import_module函數可以接受絕對路徑,IIRC不需要在您的PYTHONPATH上。

import importlib 
mod = importlib.import_module(filepath) 

或者,如果你想手工做自己的工作(或者,如果您使用Python 2.6或更早版本),你可以直接使用的imp包:你爲什麼要使用`__import__

import imp 
mod = imp.load_module(imp.find_module(filename, filepath))