修復python的ModuleNotFoundError

我在項目裏面用到了python,但其餘的同事並無安裝python環境,爲了避免強制每一個人都安裝python,我下載了python-3.6.1-embed-amd64,並將用一個.bat去調用它。
大概像這樣javascript

myscript.batjava

"%dp0\python-3.6.1-embed-amd64\python.exe" "%dp0\myscript.py"
pause

我寫了兩個python文件,這裏假設是mymodule.py和myscript.py
在myscript.py裏,我有這樣的語句:python

from mymodule import solution_directory, defaultprinter, hash

結果在雙擊myscript.bat時,報了一個錯:app

Traceback (most recent call last):
   File "D:Projectsmyscript.py", line 9, in \<module\>
     from mymodule import solution_directory, defaultprinter, hash
 ModuleNotFoundError: No module named 'mymodule'

但是這裏我明明有mymodule.py啊?
通過一番辛苦
原來是這個embeded的python在它默認的path裏,沒有搜索到個人mymoudle.py文件。
解決方案,在myscript.py頂部,增長這樣兩行code

import sys, os
sys.path.append(os.path.realpath(os.path.dirname(os.path.realpath(__file__))))

再次雙擊myscript.bat,徹底沒有問題了。ip

相關文章
相關標籤/搜索