1

我刚刚重新创建了我所有的 python 环境,重新安装了 python 和 setuptools,并安装了 virtualenv。我用 启动了一个测试环境,然后用virtualenv --no-site-packages test激活了它。然后我创建一个文件:Scripts\activate.bateasy_install web.pycode.py

import web

urls = (
    '/.*', 'index',
)

app = web.application(urls, globals())

class index:
     def GET(self):
            return 'ok'

if __name__ == "__main__": app.run()

我收到以下错误:

File "...\code.py", line 1, in <module>
import web
ImportError: No module named web

但是,如果我使用交互式外壳,它可以工作:

>>> import web
>>>

在激活环境的情况下,一切都在同一个 cmd 中完成。

有谁知道发生了什么?

编辑:

环境中安装的每个软件包都会发生这种情况。首先是 web.py,现在是 BeautifulSoup(同样的问题,找不到模块,但导入在 python shell 中工作)

编辑2:

激活脚本没有设置新的 python 可执行文件,pythonpathprint sys.executable给出了C:\Python27\python.exe.

4

1 回答 1

1

解决了。

Windows 配置为使用 .py 打开 .py 文件C:\Python27\python.exe。我什至记得前段时间手动设置了这个,这样我就不必python用来运行文件了(哦,懒惰,你对我做了什么?)。

这就是为什么它使用交互式 shell,而不是通过执行 code.py 文件。

运行文件使用python code.py完美。

于 2011-03-12T05:31:25.050 回答