问题描述用python+tornado开发了一个web网站,准备部署到外网,但是公司的信息安全要求不能源码发布,必须将其编译之后发布。现在整个系统在一个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
提交
取消