简体   繁体   中英

Python does not detect .pyc files

I am using Python 3.2 (both for building and executing), and here is my question.

I intend to ship my python application with the following setup:

There is a main script (say, Main.py ), that is using a compiled module, say Module1.pyc ). To be precise, the directory structure is:

.\Main.py
.\__pycache__\Module1.cpython-32.pyc

When I use the python interpreter to run the main script, it fails to find the module with the following error:

Traceback (most recent call last):
  File "Main.py", line 10, in <module>
    import Module1
ImportError: No module named Module1

Note that I have added the current directory to PYTHONPATH environment variable, and is part of sys.path . Also, the inner __pycache__ directory is also added, and is visible in sys.path .

Not sure why Module1 is not found. Am guessing, it could be because of the different file name - Module1.cpython-32.pyc? But, then that is how the Python 3.2 interpreter generates it.

Have a look at PEP-3147 . They describe how the python-lookup mechanism works.

在此输入图像描述

So in your concrete case: Put the file Module1.pyc directly in the root folder.

As stated below, two steps resolved the issue: Step 1: Copy the Module.cpython-32.pyc file from .__pycache__ directory to .\\ Step 2: Rename the file to Module.pyc

PS: Thanks to gecco for sharing the detail.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM