导入时无法解析的Python路径

时间:2018-11-06 09:08:17

标签: python python-3.x import path python-import

我想这是一个相当普遍的问题,但是我似乎无法导入我的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计算机上绝对可以正常工作。

1 个答案:

答案 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

您有选择权;)