我试图导入子进程。但是我甚至无法导入子进程。
目前,我的文件(throwaway.py)只包含一行:
import subprocess
但它返回错误:
Traceback (most recent call last):
File "throwaway.py", line 1, in <module>
import subprocess
ImportError: bad magic number in 'subprocess': b'\x03\xf3\r\n'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 12, in <module>
import subprocess, tempfile, os.path, re, pwd, grp, os, time
ImportError: bad magic number in 'subprocess': b'\x03\xf3\r\n'
Original exception was:
Traceback (most recent call last):
File "throwaway.py", line 1, in <module>
import subprocess
ImportError: bad magic number in 'subprocess': b'\x03\xf3\r\n'
什么是幻数错误?我读到,当你不小心给.cyc扩展而不是.py时,它们就会出现?
答案 0 :(得分:3)
在这种情况下会发生错误,因为出于某种原因,您的代码将 Python 2.7 subprocess.pyc
导入到Python 3中.Python 2.7 .pyc
以b'\x03\xf3\r\n'
开头。也许你已经为Python 2和3创建了一个virtualenv(不起作用),或者使用了错误的PYTHONPATH
。
答案 1 :(得分:0)
使用pyclean
并尝试再次导入。
pyclean <path>
将删除您提供的路径中的所有pyc
个文件(递归),因此不会编译文件,因此不会发生冲突。