Py学习  »  Python

为什么在windows上python 3下创建模块后导入会失败?

F.X. • 5 年前 • 1876 次点击  

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

# 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上,这两个导入都在Python2(2.7)下工作,但在Python3(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 打电话就行了。

为什么?

注意:这是 issue 我在想办法。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40012
 
1876 次点击  
文章 [ 1 ]  |  最新文章 5 年前