在新环境中使用 web.py 时出现导入错误

发布于 2024-10-21 17:31:52 字数 968 浏览 6 评论 0原文

我刚刚重新创建了所有 python 环境,重新安装了 python 和 setuptools,并安装了 virtualenv。 我使用 virtualenv --no-site-packages test 启动了一个测试环境,使用 Scripts\activate.bat 激活它,然后使用 easy_install web.py >。 然后我创建一个 code.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

但如果我使用交互式 shell,它就可以工作:

>>> import web
>>>

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

有谁知道发生了什么事吗?

编辑:

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

编辑2:

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

I just recreated all my python environment, reinstalled python and setuptools, and installed virtualenv.
I started a test enviroment with virtualenv --no-site-packages test, activated it with Scripts\activate.bat and then easy_install web.py.
Then I create a code.py file:

import web

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

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

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

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

And I get the following error:

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

But if I use the interactive shell it works:

>>> import web
>>>

Everything done in the same cmd with the enviroment activated.

Does anyone know what is going on?

Edit:

It happens for every package installed within the environment. First it was web.py, now BeautifulSoup (same issue, cant find module, but import works in python shell)

Edit2:

The activate script is not setting the new python executable and the pythonpath print sys.executable gives C:\Python27\python.exe.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

依 靠 2024-10-28 17:31:52

解决了。

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

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

使用 python code.py 运行该文件效果很好。

Solved.

Windows was configured to open .py files with C:\Python27\python.exe. I can even remember setting this mannualy some time ago so I wouldn't have to use python to run files (oh lazyness, what have you done to me?).

That's why it was working with the interactive shell, but not by executing the code.py file.

Running the file using python code.py works perfectly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文