首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪里可以找到pyc文件?

哪里可以找到pyc文件?
EN

Stack Overflow用户
提问于 2019-12-01 17:43:07
回答 2查看 1.3K关注 0票数 1

在我的操作系统中,python3版本是python3.5.3。

代码语言:javascript
复制
mkdir  workspace
cd workspace
vim  print.py
print("i am learning")

保存并退出。

代码语言:javascript
复制
python3 print.py
i am learning

据我所知,python源文件在执行时被解析并编译成pyc文件。

代码语言:javascript
复制
ls
print.py

工作空间目录中没有pyc文件,那么编译好的print.py文件在哪里?

代码语言:javascript
复制
sudo find  /  -name  ".pyc"

find命令仍然无法搜索print.pycpyc文件。python3 -m compileall可以手动创建print.py编译文件,print.py自己创建的编译文件在哪里?

在执行python3 print.py之后,python3是否会删除print.pyc

EN

回答 2

Stack Overflow用户

发布于 2019-12-16 23:20:15

这是我几年前刚开始学习python时遇到的一个大问题。Python就像任何其他oop编程语言一样,它在程序执行之前进行编译。当python编译它的程序时,它会创建bite代码,您可以在名为dis的标准库中看到该代码。

代码语言:javascript
复制
import dis
print(dis.dis(your_program))

有时(并非总是) python会为正在运行的程序创建.pyc文件,以提高,加快导入模块的加载速度,但不会改善执行时间。所以希望你能直观地理解.pyc,而且.pyc只有在你的模块被另一个模块导入时才会创建。

例如,假设您有这样的print.py (让我们修改它吧)

代码语言:javascript
复制
def return_print_statment(statement):
    print('Printed version: ', statement)

假设此模块由另一个名为views.py的自定义模块导入。在views.py中有一个将使用return_print_statmentmodule_view

代码语言:javascript
复制
from print import return_print_statment

def module_view():
    ...
    return_print_statment(output)

因此,在编译过程中,既然您已经导入了python,那么print.py将为它生成print.pyc文件。在Python2.0中,python会将.pyc放在同一文件夹中程序旁边,但是在python3中,python会在同一目录中创建单独的名为__pycache__的文件夹来放置这些字节码,而不是在同一文件夹中创建。

票数 1
EN

Stack Overflow用户

发布于 2019-12-01 18:02:25

python3 -m编译所有。

编译当前目录中的所有.py文件。

http://effbot.org/pyfaq/how-do-i-create-a-pyc-file.htm

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59124325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档