python,从其他目录下的文件导入当前文件夹下的文件

python,从其他目录下的文件导入当前文件夹下的文件,python,Python,我有一个打算导入用户(我)提供的文件的包 在c:\lib\calc.py中 # some codes to find which file to import filename = "A" __import__(filename) ... 我有一个文件c:\scripts\a.py 注意:A.py与calc.py位于不同的文件夹中。现在我应该在命令窗口下做这件事 cd C:\scripts python c:\lib\calc.py 但我收到一条错误消息 No module named A

我有一个打算导入用户(我)提供的文件的包

c:\lib\calc.py中

# some codes to find which file to import
filename = "A"
__import__(filename)
...
我有一个文件c:\scripts\a.py

注意:A.py与calc.py位于不同的文件夹中。现在我应该在命令窗口下做这件事

cd C:\scripts
python c:\lib\calc.py
但我收到一条错误消息

No module named A
py在当前文件夹中,为什么python找不到它?如何使A.py可用


谢谢。

您可以将路径添加到脚本calc.py中的脚本目录,以便它可以找到A.py模块

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

如果您使用的是Python 2.7版或更高版本,则可以使用该软件包。
import\u模块
函数可以接受绝对路径,IIRC不需要位于PYTHONPATH上

import importlib
mod = importlib.import_module(filepath)
或者,如果您想自己手动完成工作(或者如果您使用的是Python 2.6或更早版本),则可以直接使用该包:

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

为什么您要使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?
sys.path
中有什么?您可以将
scripts
目录添加到PYTHONPATH环境变量中。“A”仅在运行时下已知。我稍微简化了代码,实际的命令类似于“PythonC:\lib\calc.py--file a.py”