小编aba*_*bak的帖子

Python 2.x 和 3.x 无源 .pyc 部署

在 Python 2.x 中,.pyc文件存储在与源.py文件相同的目录中。在 Python 3.2+ 中,.pyc文件存储在__pycache__目录中。

如果代码编写正确,它可以由两个解释器运行,并且.pyc文件可以很好地共存。但一旦我想摆脱源代码,我就会遇到一个问题:Python 2.x 解释器仍然导入正确的.pyc文件,但 Python 3.2+ 解释器拒绝导入.pyc__pycache__目录编译的文件,并尝试.pyc从之前的版本由于幻数不匹配而失败。

是否有可能在不暴露源代码的情况下让两个Python解释器都满意?

[更新]

我尝试了这个(看起来像是一个解决方案):

  1. 照常部署源
  2. .pyc使用 Python 2.x 编译器编译每个 .py 文件(这将在同一目录中生成文件)
  3. 使用 Python 3.2+ 编译器编译每个 .py 文件(这将.pyc在目录中生成文件__pycache__
  4. 清除.py文件内容,同时保留其修改日期

Python 2 解释器很高兴。Python 3解释器怀疑源代码被修改并重新编译修改后的源代码。重新编译的原因是什么?它也存储源文件大小吗?校验和?

python compatibility python-2.x python-3.x

2
推荐指数
1
解决办法
2144
查看次数

在 python 中创建视频时如何保留图像的顺序

我需要用 python 中的图像序列创建一个视频。我在网上发现这段代码工作正常,但在用 python 读取图像时,我遇到了一个小问题。即使文件夹中的顺序没问题。例如,frame100.jpg,frame101.jpg,frame102.jpg,.....,frame1000,frame1001,...当我在循环内用python读取它们时,调试后我看到以下'frame100.jpg','帧1000.jpg','帧1001.jpg','帧1002.jpg',......,帧101,帧1010,帧1011......

这是代码

def images_to_video():

image_folder = 'data_out'


images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")]
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape

video = cv2.VideoWriter('project.avi',cv2.VideoWriter_fourcc(*'DIVX'), 15, (width,height))


for image in images:
    video.write(cv2.imread(os.path.join(image_folder, image)))


cv2.destroyAllWindows()
video.release()
Run Code Online (Sandbox Code Playgroud)

python opencv natural-sort

1
推荐指数
1
解决办法
3347
查看次数