如何禁用生成pyc和pyo文件?

4
Autotools会在构建我的项目时(而不是运行时)坚持生成pyo和pyc文件,无论我做什么。问题在于我的Python配置有些奇怪,我不希望Python编译器在安装期间运行。有没有办法禁用生成这些文件?
参考以下尝试:
- 将py_compile=echo设置为automake不编译Python脚本 - 在Makefile.am中手动定义install-pythonPYTHON - 设置PYTHONFLAGS=-B - 在Makefile.am、configure.ac等中设置PYTHONDONTWRITEBYTECODE - 创建一个新的automake变量"python2dir",并使用dist_python2_DATA = Script.py安装脚本。
基本上,如果一个文件以.py扩展名结尾,无论你做什么,Automake都会创建pyc和pyo文件。

请勿生成.pyc文件的方法 - matth
2个回答

2
请参考文档中的-B选项。

2
尝试设置 PYTHONDONTWRITEBYTECODE 环境变量,文档在此处有记录(http://docs.python.org/using/cmdline.html#environment-variables)。 - martineau
我尝试将这个放在configure.ac、Makefile.am等文件中,但没有起作用,可能是因为automake有自己的环境变量。这实际上是一个automake/autools问题,而不是Python问题。无论如何,感谢你的帮助。 - Matt Fichman
据我理解,您的问题是,当构建项目时,自动工具会生成字节码文件。它们可能会使用compileall模块,因此本答案中提供的命令行选项和环境变量对您无用-它们会防止在模块导入时自动创建pyc/pyo文件。您可能需要澄清您的问题。 - Sven Marnach
automake文档中指出"noinst_PYTHON中列出的任何文件都不会被编译" 这里 ,所以你可能可以将*.py放进去。 - martineau
@martineau:这样做意味着在执行make install时根本没有安装任何Python文件,这似乎没有什么用处。 - Sven Marnach
显示剩余3条评论

2
请使用您的最后一次尝试再试一次。
dist_python_DATA = foo.py

将会把foo.py视为普通文件,分发并安装在$(pythondir)中。 _DATA不会触发任何编译。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接