[英]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.