python - pyc 文件显示“源代码字符串不能包含空字节”
问题描述
语境
1.py
我在 macOS 上使用vim
编码编写了这个脚本utf-8
import sys
sys.path += ['./modules']
from _modules._signal import *
然后使用编译它
python3 -m py_compile 1.py
字节码__pycache__/1.cpython-39.pyc
可以通过
python3 __pycache__/1.cpython-39.pyc
没有问题。
问题
众所周知,字节码是跨平台的。因此,我将其发送.pyc
到了 Windows 10。
这是目录树。
1/ #We are here at first.
└ 2/
└ 3/
└ __pycache__/
└ 1.cpython-39.pyc
当我执行
python3 __pycache__/1.cpython-39.pyc
或者
cd 2/
python3 ../__pycache__/1.cpython-39.pyc
它工作(与ImportError
)。
但是,如果我执行
cd 3/
python3 ../__pycache__/1.cpython-39.pyc
它意外地失败了。这是输出:
Traceback (most recent call last):
File "1.py", line 3, in <module>
ValueError: source code string cannot contain null bytes
为什么?这是一个错误吗?
我在 macOS 和 Arch Linux 上采取了相同的步骤,没有问题。只有 Windows 10 会出现此错误。
环境
Python 3.9.4
(适用于 macOS、Linux 和 Windows 10)macOS 大苏尔
Windows10(测试过 cmd、powershell 和 Cygwin)
解决方案
推荐阅读
- heroku - DNS gTLD 适用于 REST,但不适用于浏览器
- php - 根据产品属性使用自定义运输方式
- jakarta-ee - 集中 quarkus 的通用配置
- r - 如何计算R中一行中的唯一值
- azure - Visual Studio 代码 | ETag 不代表文件“application.py”的最新状态。从 Azure 下载文件以获取最新版本
- flutter - Flutter Slider(seekbar) - 如何使其长度更短?
- ember.js - 日历 Emberjs 上的清除按钮
- sql - SQL如何在OneToOne中限制只有父级(按名称排序)
- sql - SQL 外键约束 datetime to date
- azure-webjobs - Azure 网络作业 ETIMEDOUT