【问题标题】:ImportError: cannot import name route in python bottleImportError:无法在 python 瓶中导入名称路由
【发布时间】:2016-03-21 17:14:30
【问题描述】:

我正在尝试开始学习python Bottle框架,我已经安装了python 2.7.11,也安装了pip,我已经安装了bottle使用

pip install bottle
Collecting bottle
  Using cached bottle-0.12.9.tar.gz
Installing collected packages: bottle
  Running setup.py install for bottle ... done
Successfully installed bottle-0.12.9

现在我尝试运行来自瓶子网站的示例代码

from bottle import route, run, template
@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)

当我运行此代码时,它会引发以下错误

Traceback (most recent call last):
  File "C:/Users/SID/Desktop/bottle.py", line 1, in <module>
    from bottle import route, run, template
  File "C:/Users/SID/Desktop\bottle.py", line 1, in <module>
    from bottle import route, run, template
ImportError: cannot import name route

我不知道出了什么问题,有人可以指导我吗,是代码错误吗?还是瓶装?

注意:我试过 python 3.4.3 在运行程序时仍然遇到同样的错误,我在虚拟框中使用的是 windows 8.1

【问题讨论】:

  • 检查bottle是安装在python 3.4.3还是python 2.7.11?
  • 是的,它安装在两者中,我确定我在哪里使用这个瓶子,正如我在下面所说的,我是否需要在我的代码所在的同一位置使用这个 bottle.py 文件?因为该代码仅在我的代码与 bottle.py 位于同一位置时才有效,有没有其他方法可以解决此问题,而无需将 bottle.py 保留在我的项目所在的同一文件夹中?
  • 你的文件名是'bottle.py'吗?
  • 这是我的问题。一旦我重命名它,它就可以正常工作了。

标签: python


【解决方案1】:

您的项目文件夹中有bottle.py 文件。出现问题是因为 python 模块 C:/Users/SID/Desktop/bottle.py 遮蔽了由 pip 安装的 bottle.py 模块。重命名影子真实bottle.py模块的文件以修复导入问题。

要重命名的文件位置是C:/Users/SID/Desktop/bottle.py

【讨论】:

  • 你的意思是“C:\Python27\Scripts”文件夹中的bottle.py,我已将其重命名为“bottle-renamed.py”,但它仍然没有帮助我
  • @Sundararajan 将该文件重命名为以前的名称并调整 C:/Users/SID/Desktop/bottle.py 的名称
  • 实际上,在我将 python 脚本的位置更改为“bottle.py”所在的相同位置后,它现在可以工作了。非常感谢你帮助我
【解决方案2】:

当一个名为 bottle 的模块被导入时,解释器首先搜索一个具有该名称的内置模块。如果没有找到,在这种情况下,它会在变量 sys.path 给出的目录列表中搜索名为 bottle.py 的文件。 sys.path 从这些位置初始化:

  • 包含输入脚本的目录(或当前目录)。
  • PYTHONPATH(目录名称列表,与 shell 变量 PATH 语法相同)。
  • 依赖于安装的默认值。

确保瓶子在 PYTHONPATH 中。有关 PYTHONPATH 的更多信息here

【讨论】:

  • 实际上,在我将 python 脚本的位置更改为“bottle.py”所在的相同位置后,它现在可以工作了。非常感谢你帮助我,但你能解释一下为什么瓶子.py 和 mycode.py 应该在同一个位置。我现在正在阅读您提供的 PYTHONPATH 链接,感谢您分享信息...
猜你喜欢
  • 2018-09-16
  • 2018-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 2016-10-02
相关资源
最近更新 更多