Python安装在本地目录中.
我的目录树如下所示:
(local directory)/site-packages/toolkit/interface.py
Run Code Online (Sandbox Code Playgroud)
我的代码在这里:
(local directory)/site-packages/toolkit/examples/mountain.py
Run Code Online (Sandbox Code Playgroud)
为了运行这个例子,我写了python mountain.py,在我的代码中:
from toolkit.interface import interface
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Traceback (most recent call last):
File "mountain.py", line 28, in ?
from toolkit.interface import interface
ImportError: No module named toolkit.interface
Run Code Online (Sandbox Code Playgroud)
我已经检查过sys.path,我有目录/site-packages.另外,我__init__.py.bin在toolkit文件夹中有文件向Python表明这是一个包.我__init__.py.bin在examples目录中也有一个.
我不知道为什么Python在它出现时无法找到该文件sys.path.有任何想法吗?可以是权限问题吗?我需要一些执行权限吗?
我最近想出了如何在python中导入单元测试模块.作为解决方案,我使用:
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from Dev.test import someclass
Run Code Online (Sandbox Code Playgroud)
这在PyCharm中运行时工作正常,我得到了预期的输出.但是,当我从终端运行时遇到错误:
ImportError: No module named Dev.test
Run Code Online (Sandbox Code Playgroud)
我有他们应该在的初始文件,但我迷失了为什么这在PyCharm工作,但不是从终端.我没有在PyCharm中改变我的路径或任何东西,因为这段代码应该能够在其他机器上以最小的修改运行.任何想法为什么会发生这种情况以及我可以做些什么来解决它?
我的文件夹结构如下
-Current
-Dev
-__init__.py
-test
- __init__.py
-someclass.py
-Tests
-__init__.py
-someunittest.py
Run Code Online (Sandbox Code Playgroud)
我尝试从主文件夹运行someunittest以及完整路径,但它只适用于PyCharm