为什么在 Windows 上的 Python 3 下创建模块后导入失败?

以下代码尝试创建然后导入两个模块:


# coding: utf-8


import os

import time


# Remove the modules we're about to create if they already exist

def force_unlink(name):

    try:

        os.unlink(name)

    except OSError:

        pass

force_unlink("print1.py")

force_unlink("print1.pyc")

force_unlink("print2.py")

force_unlink("print2.pyc")

time.sleep(1)


# Create module 1 and module 2, then try to import them just afterwards

print("Creating module 1...")

with open("print1.py", "wb+") as fd:

    fd.write(b'print("Imported module 1")')

import print1

print("Creating module 2...")

with open("print2.py", "wb+") as fd:

    fd.write(b'print("Imported module 2")')

import print2

在 Windows 上,这两个导入都可以在 Python 2 (2.7) 下运行,但不能在 Python 3(3.5 和 3.6)下运行:


$ python2 reproduce.py

Creating module 1...

Imported module 1

Creating module 2...

Imported module 2

$ python3 reproduce.py

Creating module 1...

Imported module 1

Creating module 2...

Traceback (most recent call last):

  File "reproduce.py", line 26, in <module>

    import print2

ImportError: No module named 'print2'

time.sleep(5)在每次import printX调用之前添加使其工作。


这是为什么?


注意:这是我试图弄清楚的一个问题的更简单版本。


慕丝7291255
浏览 157回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python