問題描述用python+tornado開發了一個web網站,準備部署到外網,但是公司的信息安全要求不能源碼發布,必須將其編譯之后發布?,F在整個系統在一個virtualenv環境之中。問題出現的環境背景及自己嘗試過哪些方法1.嘗試過pyinstaller,這個工具對單文件還可以,但是對多文件特別是這種依賴很多的不是很方便。2.也試過compileall,這個工具將所有的py文件都編譯成pyc文件。但是我直接運行pyc文件,會報import error,找不到其依賴的同目錄下其他的文件。期待結果希望各位有類似情況的各位幫忙解決下,不勝感激。
1 回答

莫回無
TA貢獻1865條經驗 獲得超7個贊
我測試了下,compileall.compile_dir()編譯完dir目錄后,還得做兩件事:
1、把pyc文件從dir目錄下的__pycache__目錄中拷貝出來;
2、把dir目錄下的py文件都刪除,然后把拷貝出來的pyc文件按照py文件的樣式重命名,比如【test.cpython-36.pyc】重命名為【test.pyc】。
這樣,你就可以在命令行中正常執行“python test.pyc”了,即使test.pyc中存在“import module1”,它也能夠順利導入同在dir目錄下的module1.pyc。
添加回答
舉報
0/150
提交
取消