【问题标题】:Adding python module from different folder从不同的文件夹添加 python 模块
【发布时间】:2021-12-30 21:38:30
【问题描述】:

我有一个包含 main.py 的应用程序文件夹和一个包含一些模块的 lib 文件夹:

LeapMotionInterpreter --> DataExtractor.py 
                          lib              --> Leap.py

我已经看过如何做到这一点,他们都说要使用 sys.path.insert 或 sys.path.append 但似乎没有任何效果,python 似乎甚至不知道那里有一个 lib 文件夹即使打印 sys.path 确实显示了新添加的 lib 路径。

这是我尝试过的代码:

1.

import sys
sys.path.insert(0, 'C:/Users/winba/Desktop/TYP/LeapMotionInterpreter/lib')
print (sys.path)

输出:

['C:/Users/winba/Desktop/TYP/LeapMotionInterpreter/lib', 'C:\\Users\\winba\\Desktop\\TYP\\LeapMotionInterpreter'
import sys
sys.path.append('C:/Users/winba/Desktop/TYP/LeapMotionInterpreter/lib')
print (sys.path)

这只是在数组末尾输出lib路径,我也尝试用单\或双\而不是/来编写路径,但所有这些都只会给我一个'No module named 'Leap'错误如果我尝试导入它,甚至不承认 lib 文件夹的存在。此外,将我的模块放在同一个文件中似乎可以工作,因为 python 能够立即找到 Leap.py 文件,但是这将是一个相当大的项目,我想使用文件夹保持它的整洁,所以任何帮助都将不胜感激。谢谢。

【问题讨论】:

  • 如果你在 lib 文件夹中放了一个空的__init__.py 文件?

标签: python import module importerror sys


【解决方案1】:

如果我的理解正确,您的目标目录是当前目录的子目录。您可以在运行时将文件添加到 Python 路径,方法是为其提供相对路径:

# DataExtractor.py
import sys
sys.path.insert(1, 'lib')

import Leap

这应该可以解决问题

【讨论】:

    猜你喜欢
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2021-08-03
    • 2013-08-26
    相关资源
    最近更新 更多