pycache怎么用_如何使用__pycache__文件夹运行Python项目?

本文探讨了如何在Python3项目中使用`__pycache__`目录运行含有子文件夹依赖的项目,特别关注了asyncio模块。作者分享了在Python2中通过编译生成.pyc文件的经验,并介绍了在Python3中遇到的问题及解决策略。
摘要由CSDN通过智能技术生成

我想使用Python编译(.pyc或__pycache__)运行Pythonic项目.为了在Python2中做到这一点,我没有任何问题.

以下是Python2项目中的简化示例:

>项目树:

test2

├── main.py

└── subfolder

├── __init__.py

└── sub.py

>编译:

python -m compileall test2

>编译后的项目树:

test2

├── main.py

├── main.pyc

└── subfolder

├── __init__.py

├── __init__.pyc

├── sub.py

└── sub.pyc

>正如您所看到的,手动生成了几个.pyc.现在我可以使用main.pyc运行这个项目,因为它与sub.py有关系:

python main.pyc

日期:

Hi

Bye

> main.py内容:

from subfolder import sub

print('Bye')

> sub.py内容:

print('Hi')

现在我想在Python3项目中重试这种行为.

这是一个简化的asyncio(在Python3中可用)项目:

>项目树:

test3

├── main.py

└── subfolder

├── __init__.py

└── sub.py

>编译:

python3 -m compileall test3

>编译后的项目树:

test3

├── main.py

├── __pycache__

│?? └── main.cpython-36.pyc

└── subfolder

├── __init__.py

├── __pycache__

│?? ├── __init__.cpython-36.pyc

│?? └── sub.cpython-36.pyc

└── sub.py

>如您所见,手动生成__pycache__文件夹.但是我无法使用与子文件夹有关系的main.cpython-36.pyc来运行这个项目:

cd test3/__pycache__

python3 main.cpython-36.pyc

Out(我预计会产生Hi Bye消息):

Traceback (most recent call last):

File "test3/main.py", line 2, in

ModuleNotFoundError: No module named 'subfolder'

> main.py内容:

import asyncio

from subfolder import sub

async def myCoroutine():

print("Bye")

def main():

loop = asyncio.get_event_loop()

loop.run_until_complete(myCoroutine())

loop.close()

main()

> sub.py内容:

print('Hi')

题:

如何使用__pycache__文件夹运行此项目(在Python3项目之上)?

要么

如何使用python编译运行带有子文件夹之间关系的Python3项目?

[注意]:

>由于asyncio方法,我不能在上面的Python3项目中使用python compileall(Python2编译).

>我的Python版本是Python2.7和Python3.6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值