使用 setuptools 构建包时如何避免收到无用的警告?
How can I avoid getting useless warnings while building my package using setuptools?
似乎 setuptools 触发了各种真正为零值的警告,我想摆脱它们,因为它们在持续集成进程中发送垃圾信息,使得更难发现真正的警告。
以下是我确实想要摆脱的那些:
python setup.py -q bdist_wheel
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.pyc' found under directory '*'
warning: no previously-included files matching '*.pyo' found under directory '*'
warning: no previously-included files matching '*.orig' found under directory '*'
warning: no files found matching '*.md' under directory 'releases'
warning: no files found matching '*.rst' under directory 'releases'
warning: no files found matching '*.json' under directory 'releases'
warning: no previously-included files matching '*' found under directory 'examples/node_modules'
no previously-included directories found matching 'examples/node_modules'
warning: build_py: byte-compiling is disabled, skipping.
warning: install_lib: byte-compiling is disabled, skipping.
似乎所有这些都是由 MANIFEST.in
文件引起的,但那里的条件确实有存在的理由,而且当排除模式确实找不到匹配的文件时,这显然不是生成警告的原因?!
目前我只找到一个解决此问题的方法:
export PYTHONDONTWRITEBYTECODE=
这将避免在构建过程中收到这些恼人的警告。
我使用 makefile 来构建我的项目,我必须将以下行添加到顶部:
unexport PYTHONDONTWRITEBYTECODE
在 shell 中,您也必须 unset PYTHONDONTWRITEBYTECODE
。将它从 1
设置为 0
将不起作用。不过,我正在使用 zsh
,所以也许上面的答案在其他地方也适用。
此外,您可以将-B
直接传递给python
以禁用字节编译,但环境变量优先于它(至少在Python 3版本我是使用 - 3.6.8
)。不过,我没有看到强制打开字节编译的选项。
最后,您可以将 --help
传递给大多数 setup.py
命令以获取有关它们支持的标志的信息。例如,build_py
和 install_lib
支持 --compile/-c
、--no-compile
标志,这应该可以帮助您进行细粒度控制,尽管根据我的经验环境变量再次优先。
似乎 setuptools 触发了各种真正为零值的警告,我想摆脱它们,因为它们在持续集成进程中发送垃圾信息,使得更难发现真正的警告。
以下是我确实想要摆脱的那些:
python setup.py -q bdist_wheel
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.pyc' found under directory '*'
warning: no previously-included files matching '*.pyo' found under directory '*'
warning: no previously-included files matching '*.orig' found under directory '*'
warning: no files found matching '*.md' under directory 'releases'
warning: no files found matching '*.rst' under directory 'releases'
warning: no files found matching '*.json' under directory 'releases'
warning: no previously-included files matching '*' found under directory 'examples/node_modules'
no previously-included directories found matching 'examples/node_modules'
warning: build_py: byte-compiling is disabled, skipping.
warning: install_lib: byte-compiling is disabled, skipping.
似乎所有这些都是由 MANIFEST.in
文件引起的,但那里的条件确实有存在的理由,而且当排除模式确实找不到匹配的文件时,这显然不是生成警告的原因?!
目前我只找到一个解决此问题的方法:
export PYTHONDONTWRITEBYTECODE=
这将避免在构建过程中收到这些恼人的警告。
我使用 makefile 来构建我的项目,我必须将以下行添加到顶部:
unexport PYTHONDONTWRITEBYTECODE
在 shell 中,您也必须 unset PYTHONDONTWRITEBYTECODE
。将它从 1
设置为 0
将不起作用。不过,我正在使用 zsh
,所以也许上面的答案在其他地方也适用。
此外,您可以将-B
直接传递给python
以禁用字节编译,但环境变量优先于它(至少在Python 3版本我是使用 - 3.6.8
)。不过,我没有看到强制打开字节编译的选项。
最后,您可以将 --help
传递给大多数 setup.py
命令以获取有关它们支持的标志的信息。例如,build_py
和 install_lib
支持 --compile/-c
、--no-compile
标志,这应该可以帮助您进行细粒度控制,尽管根据我的经验环境变量再次优先。