Python 无法解析导入时的路径

Python path when importing can't be resolved

我想这是一个相当普遍的问题,但我似乎无法导入我的 Python 模块。

这段代码 运行 在我家里的 Ubuntu 机器上绝对没问题,但在我工作的 Windows 机器上似乎不起作用。这让我相信它归结为 Python 与 *nix 系统相比在 Windows 上的工作方式不同,或者它处理模块的方式完全不同。

根据我的理解,模块应该根据 sys.path 加载,根据关于该问题的所有其他问题和我所做的阅读。

但是,我有一个像这样的简单项目:

DataStructures
├───.git
└───Python
    ├───DoublyLinkedListStarter.py
    └───LinkedLists
        ├───Doubly.py
        └──────LinkedNodes
               └───DoublyLinkedNode.py

如果我导航到 Python/ 和 运行 python .\DoublyLinkedListStart.py,我会在 Doubly.py:

中收到模块错误

Unable to import module LinkedNodes

代码非常基础,它是双向链表的 Python 实现,其中 DoublyLinkedListStarter 导入 Doubly 实现主体链表,并导入 DoublyLinkedNode.

DoublyLinkedListStart.py:

from LinkedList import Doubly

Doubly.py:

from LinkedNodes import DoublyLinkedNode

同样,这在我的 Ubuntu 机器上运行得非常好,然后我将它推到 git 并在我的 windows 机器上拉下来。

试试这个:

from LinkedLists.LinkedNodes import DoublyLinkedNode

但这是 PYTHONPATH 系统变量的问题。另一种方法是将其添加到 PYTHONPATH 系统变量中:

set PYTHONPATH=%PYTHONPATH%;LinkedLists\LinkedNodes
python .\DoublyLinkedListStart.py

每次打开命令行时都必须这样做。

python 正在使用的路径可以从 python 脚本中使用 sys.path 访问,这是一个列表。这提供了另一种添加导入路径的方法:

import sys
sys.path.append("LinkedLists")
from LinkedNodes import DoublyLinkedNode

你有选择 ;)