导入焊炬时Python阻塞/停止

enyaitl3  于 2022-12-02  发布在  Python
关注(0)|答案(1)|浏览(120)

我开发了一个基于pytorch的深度学习对象检测程序,运行的非常好。今天我把这个程序部署到PC上,一切都很顺利,但是程序无法启动。调试一下,发现程序在导入pytorch时会阻塞或停止。
只需启动一个python提示符,输入import torch,提示符就会阻塞。top命令显示CPU/内存使用率非常低。按ctrl-c无法停止提示符。而其他库导入则可以。我试过pycrypto和我自己写的,都能工作,但pytorch不能。
我已经部署了100多次,但从来没有遇到这种情况。我也尝试重新安装pytorch,从1. 6到1. 4,torchvision从0. 7到0. 5,仍然不工作。没有错误打印,没有抱怨显示。
使用环境:

  • 操作系统:Centos 7.4
  • CUDA:10.0版
  • NVIDIA驱动程序:440.82
  • 图形处理器:GTX 1660
  • Python:3.6

pytorch版本:1.6和1.4中所示。
任何信息都是受欢迎的,提前感谢。
编辑:
根据Szymon的想法,运行python3 foo.py,其中只有import torch,然后按ctrl-c,提示符打印:

Traceback (most recent call last):
  File "foo.py", line 1, in <module>
    import torch
  File "/usr/local/lib64/python3.6/site-packages/torch/__init__.py", line 48, in <module>
    if platform.system() == 'Windows':
  File "/usr/lib64/python3.6/platform.py", line 1068, in system
    return uname().system
  File "/usr/lib64/python3.6/platform.py", line 1034, in uname
    processor = _syscmd_uname('-p', '')
  File "/usr/lib64/python3.6/platform.py", line 788, in _syscmd_uname
    f = os.popen('uname %s 2> %s' % (option, DEV_NULL))
  File "/usr/lib64/python3.6/os.py", line 980, in popen
    bufsize=buffering)
  File "/usr/lib64/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.6/subprocess.py", line 1318, in _execute_child
    part = os.read(errpipe_read, 50000)

看起来python在运行uname <option>时挂起了,所以我在命令行上尝试了uname -a 2> /dev/null,它立即返回,没有任何异常。还创建了一个名为www.example.com的文件bar.py,内容如下:

import platform
print(platform.system())

python3运行它,运行得很好,打印了“Linux”。我不认为这是原因,也许只是一个巧合?
我也尝试了更多的时间,其他情况看起来像运行import torch在python提示符,无法杀死进程和没有打印。一旦它打印Soft lock up on CPU#4,我认为这是由测试进程在最后一个断开会话。

uxh89sit

uxh89sit1#

在我的例子中,在我的主python文件目录中,还有一个名为signal.py的文件,当我把它重命名为signal1.py时,一切都开始工作了。

相关问题