簡體   English   中英

Python3 - ImportError:沒有命名的模塊

[英]Python3 - ImportError: No module named

我有 2 個文件夾:

my_python
     code.py

MyCode
     TestEntry.py

當我運行以下命令時:

cd /data/my_python
python3 code.py

以上工作。

但是,如果我在我的主文件夾中然后運行這個:

python3 /data/my_python/code.py

我收到以下錯誤:

Traceback (most recent call last):
  File "/data/my_python/code.py", line 4, in <module>
    from TestEntry import TestEntry
ImportError: No module named 'TestEntry'

這是代碼:

import sys
import os
sys.path.append(os.path.abspath('../MyCode'))
from TestEntry import TestEntry
TestEntry().start(507,"My Param1","/param2",'.xyz',509)

你能幫我解決這個問題嗎?

發生這種情況是因為,正如@mkrieger1 所提到的,您的sys.path搞砸了。 在這里有一個先前的答案,它解釋了如何設置它。 sys.path搞砸了,我的意思是 python 將查看您正在運行的目錄,而不是您正在運行的腳本所在的目錄。這是推薦的方法:

import sys, os
sys.path.append(os.path.abspath(os.path.join('..', 'MyCode')))
... (your code)

或者

import sys, os
sys.path.append(os.path.abspath(os.path.join(__file__, '..', 'MyCode')))
... (your code)

這樣 python 也會在您正在運行的文件的目錄中查找。

您正在使用sys.path.append(os.path.abspath('../MyCode'))行添加到sys的相對路徑。 相反,您需要相對於您正在調用的文件進行導入。 嘗試這個:

import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
from TestEntry import TestEntry
TestEntry().start(507, "My Param1", "/param2", '.xyz', 509)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM