嗨,我通过 python 包装器运行带有线程的子进程,当我使用子进程模块时,我收到以下警告。
“_posixsubprocess 模块没有被使用,如果你的程序使用线程,子进程的可靠性可能会受到影响。”
这意味着什么?我怎样才能摆脱它?
嗨,我通过 python 包装器运行带有线程的子进程,当我使用子进程模块时,我收到以下警告。
“_posixsubprocess 模块没有被使用,如果你的程序使用线程,子进程的可靠性可能会受到影响。”
这意味着什么?我怎样才能摆脱它?
检查您是否可以import _posixsubprocess
手动,子进程尝试在其代码中导入它,如果它产生异常,则会产生此警告。
取消设置 PYTHONHOME 已经为我解决了这个问题。
我在使用 conda 安装的工具时遇到了同样的问题。原来有一种来自 pip 的 subprocess32 的冲突版本。运行这个就可以了:
pip uninstall subprocess32
conda install -c conda-forge subprocess32
我的解决方案是执行以下操作:
pip uninstall subprocess32
pip install -U subprocess32
最初,当我尝试导入时收到警告matplotlib
:
Python 2.7.13 (default, May 16 2017, 12:02:12)
[GCC 6.2.0 20160901] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
/home/methuselah/.local/lib/python2.7/site-packages/subprocess32.py:472: RuntimeWarning: The _posixsubprocess module is not being used. Child process reliability may suffer if your program uses threads.
"program uses threads.", RuntimeWarning)
>>>
重新安装后subprocess32
,警告消失:
Python 2.7.13 (default, May 16 2017, 12:02:12)
[GCC 6.2.0 20160901] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>>
如果您使用的 Python 版本不止一个,则可能是这样。您需要为每个程序指定正确的 python 版本。例如,我需要用于 miniconda 的 python 3.7,但 mendeleydesktop 声称此版本存在问题:
_posixsubproces 及其位置也有问题
所以我没有只在 phyton 环境中运行程序,而是使用 python2.7,它解决了这个问题。希望能帮助到你。干杯,弗洛尔