我在項目裏面用到了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