Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pyc文件上写着;源代码字符串不能包含空字节"; 上下文_Python_Python 3.x_Bytecode - Fatal编程技术网

Python pyc文件上写着;源代码字符串不能包含空字节"; 上下文

Python pyc文件上写着;源代码字符串不能包含空字节"; 上下文,python,python-3.x,bytecode,Python,Python 3.x,Bytecode,我使用vim和编码utf-8在macOS上编写了这个脚本1.py 导入系统 sys.path+=['./模块'] 来自_模块。_信号导入* 然后使用 python3-mpy\u编译1.py 字节码\uuu pycache\uuu/1.cpython-39.pyc可以通过 python3\uuupycache\uuuu/1.cpython-39.pyc 没问题 问题 众所周知,字节码是跨平台的。因此,我将.pyc发送到Windows 10 这是目录树 1/#我们首先到了这里。 └ 2/ └

我使用
vim
和编码
utf-8
在macOS上编写了这个脚本
1.py

导入系统 sys.path+=['./模块'] 来自_模块。_信号导入* 然后使用

python3-mpy\u编译1.py
字节码
\uuu pycache\uuu/1.cpython-39.pyc
可以通过

python3\uuupycache\uuuu/1.cpython-39.pyc
没问题


问题 众所周知,字节码是跨平台的。因此,我将
.pyc
发送到Windows 10

这是目录树

1/#我们首先到了这里。
└ 2/
└ 3/
└ __pycache__/
 └ 1.cpython-39.pyc
当我执行

python3\uuupycache\uuuu/1.cpython-39.pyc

cd2/
python3../\uuuupycache\uuuuu/1.cpython-39.pyc
它可以工作(与
importorror

但是如果我执行

cd3/
python3../\uuuupycache\uuuuu/1.cpython-39.pyc
它意外地失败了。以下是输出:

Traceback (most recent call last):
  File "1.py", line 3, in <module>
ValueError: source code string cannot contain null bytes
回溯(最近一次呼叫最后一次):
文件“1.py”,第3行,在
ValueError:源代码字符串不能包含空字节
为什么??这是虫子吗

我在macOS和Arch Linux上采取了相同的步骤,没有问题。只有Windows 10出现此错误


环境
  • Python 3.9.4
    (适用于macOS、Linux和Windows 10)

  • 大苏尔马科斯酒店

  • Windows10(已测试cmd、powershell和Cygwin)


我不确定自己是否理解跑步2和跑步3之间的区别。除了文件夹外,还有什么变化吗?
2
3
文件夹中是否有任何东西可能干扰Python的操作(例如,一个散乱的
1.py
文件)?@Blckknght
2
3
之间的区别只是它们的名称。由于只传输
.pyc
文件,因此不存在杂散的
1.py
。我无法重现您的错误消息。我很高兴我这么做了,但事实上我正试图用对解释器的命令行调用中的
-mpy\u compile
第二次编译
.pyc
文件。我会再次检查你是否真的在运行你认为正在运行的程序,因为这个问题对我来说没有任何意义。