我在 Windows 机器上的共享文件夹中有一些 python 模块。
该文件是 \mtl12366150\test\mymodule.py
os.path.exists 告诉我这条路径是有效的。
我将文件夹 \mtl12366150\test 附加到 sys.path (并且 os.path.exists 告诉我这个路径是有效的)。
当我尝试导入 mymodule 时,我收到一条错误消息,指出该模块不存在。
有没有办法导入位于共享路径中的模块?
您是否忘记在附加的 sys.path 组件中使用原始字符串或转义反斜杠?请记住,"\t" 是一个制表符,而 r"\t" 或 "\t" 是一个反斜杠后跟一个制表符。
在大多数应用程序中,即使对于 Windows 路径,您实际上最好使用正斜杠而不是反斜杠,并且大多数 Windows API 都可以接受它们。否则,请小心使用原始字符串!
【简单Python模块上面的目录不需要添加__init__.py文件】
你说 os.path.exists() 说路径在那里,但你绝对确定你逃脱了\?尝试这个:
sys.path.append('\\mtl12366150\\tes')
要导入 python 项目,需要在__init__.py
其上方的每个文件夹中都有一个文件,以表明它是一个有效的 python 包。
这些__init__.py
文件可以是空的,它们只是为了显示结构。
\mtl12366150
__init__.py
\test
__init__.py
\mymodule.py
正如 S.Lott 所说,最好的方法是设置 PYTHONPATH 环境变量。我没有方便的 windows 框,但从您的命令提示符下它看起来像这样:
c:> SET PYTHONPATH=c:\mtl12366150\test
c:> python
>>> import mymodule
>>>
我想我找到了答案。我使用的是 Python 2.6.1,现在使用 Python 2.6.2 可以正常工作。我对 python 2.5.4 有同样的错误行为。
“我附加到 sys.path ...”
请不要。
PYTHONPATH
从应用程序外部设置环境变量。