我想这是一个相当普遍的问题,但是我似乎无法导入我的Python模块。
此代码在我的Ubuntu机器上绝对可以正常运行,但似乎无法在我的Windows机器上工作。这使我相信它可以归结为与* nix系统相比Python在Windows上的工作方式有所不同,或者其处理模块完全不同。
根据我的理解,模块应该基于sys.path
以及与问题和阅读内容有关的所有其他问题进行加载。
但是,我有一个像这样的简单项目:
DataStructures
├───.git
└───Python
├───DoublyLinkedListStarter.py
└───LinkedLists
├───Doubly.py
└──────LinkedNodes
└───DoublyLinkedNode.py
如果我导航到Python/
并运行python .\DoublyLinkedListStart.py
,则会在Doubly.py
中收到模块错误:
无法导入模块LinkedNodes
代码非常基础,它是双链表的Python实现,其中DoublyLinkedListStarter
导入Doubly
来实现主体链表,并导入DoublyLinkedNode
。
DoublyLinkedListStart.py
:
from LinkedList import Doubly
Doubly.py
:
from LinkedNodes import DoublyLinkedNode
再次,在我将其推至git并将其拉至Windows计算机上之前,这在我的Ubuntu计算机上绝对可以正常工作。
答案 0 :(得分:1)
尝试一下:
from LinkedLists.LinkedNodes import DoublyLinkedNode
但这是PYTHONPATH系统变量的问题。另一种方法是将其添加到PYTHONPATH系统变量中:
set PYTHONPATH=%PYTHONPATH%;LinkedLists\LinkedNodes
python .\DoublyLinkedListStart.py
每次打开命令行时都必须这样做。
可以使用sys.path(列表)从python脚本中访问python正在使用的路径。这提供了另一种添加导入路径的方法:
import sys
sys.path.append("LinkedLists")
from LinkedNodes import DoublyLinkedNode
您有选择权;)