在用Windows系统搭建好的Python目录中,会发现Python.exe和Pythonw.exe两个程序,它们的差别是什么呢?简单概括:python.exe以控制台方式启动,在运行程序的时候,会弹出一个黑色的命令行控制行窗口(也叫DOS/CMD窗口)pythonw.exe以标准WIN32 GUI方式启动,双击图标不会出现命令控制行窗口,是无窗口的Python可执行程序,代码在后台执行。使用Pythonw.exe来执行py程序,则需要注意一个问题:如果在py程序中使用了print语句,当pri...
有时候我通过指向PYTHON_TEST = path_of_module_to_test测试来运行unittest上的unittest,如果这个模块path_of_module_to_test测试导入了一些已更新的其他python模块,那么从这个模块导入的内容将从更新的py源文件或未更新的pyc中获取文件,还是导入导致更新依赖的pyc文件?解决方法:从PEP 3147开始:CPython compiles its source code into “byte code”, and for performancereasons, it caches this byte code on the file system...
pyc文件就是由Python文件经过编译后所生成的文件,py文件编译成pyc文件后加载速度更快而且提高了代码的安全性。pyc的内容与python的版本相关,不同版本编译的pyc文件不一样【推荐课程:Python教程】什么是pyc文件pyc是一种二进制文件,是由Python文件经过编译后所生成的文件,它是一种byte code,Python文件变成pyc文件后,加载的速度有所提高,而且pyc还是一种跨平台的字节码,由python的虚拟机来执行的,就类似于JAVA或者.NET的虚...
有的时候我们需要把项目中.py的python所有源文件编译成.pyc文件,只保留.pyc文件然后发布给别人(虽然说可以反编译,但也算是一种保护把).
这个时候就可以使用compileall 库来完成这个工作,它可以递归的把一个文件夹下的所有.py文件编译成.pyc文件。
例如我有一个django项目在test文件夹下就可以代码如下:
E:\>python -c "import compileall; import re; compileall.compile_dir(test, rx=re.compile(r[/\\][.]svn), force=True)...
有时候会在项目文件夹中看到*.pyc文件,打开一堆乱码,有何作用?
其实pyc是python将py文件编译后产生的(可能叫解释更加严谨)
和py一样可以直接运行
使用pyc文件代替py可以保护源码同时提高程序执行效率
如何生成?
import py_compile
py_compile.compile('./xxx.py')运行后将在当前目录下生成__pycache__/xxx.cpython-37.pyc
注意:生成的pyc与Python版本相关,不可夸版本运行
方法
在环境变量文件~/.bashrc中添加
export PYTHONDONTWRITEBYTECODE=Falsesource ~/.bashrc加载即可
如何从项目中删除所有.pyc文件
find . -name *.pyc -delete
我想删除我的django项目中的所有.py文件.但是还没有生成pyc文件..
需要更改哪些设置才能生成.pyc文件解决方法:compileall可用于编译项目目录中的所有Python脚本.python -m compileall path/to/project
在开发Python Web应用程序(Flask / uWSGI)并在本地计算机上运行时,* .pyc文件由解释器生成.我的理解是这些编译的文件可以使事情加载更快,但不一定运行得更快.
当我将同一个应用程序部署到生产环境时,它在一个对本地文件系统没有写入权限的用户帐户下运行.没有提交源代码控制的pyc文件,在部署期间也没有努力生成它们.即使Python想在运行时编写一个pyc文件,它也无法做到.
最近,我开始想知道这对应用程序的性能是否有任何实际影响,无论...
什么是pyc文件
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。
为什么需要pyc文件
这个需求太明显了,因为py文件是可以直接看到...
virtualenv不将.py(w)文件与virtualenv版本的Python可执行文件相关联的原因是什么?考虑到Windows上没有像shebang这样的机制,这对于Windows上的virtualenv来说似乎是一个理想的任务.解决方法:文件类型关联在Windows注册表中处理. virtualenv激活脚本必须修改注册表项,并且deactivate脚本需要恢复以前的值(或破坏关联的风险).
如果激活virtualenv,打开cmd.exe的第二个实例,并激活另一个virtualenv会发生什么?除非您按正确的顺序停用...