【问题标题】:Cannot import python http module for twisted.web无法为 twisted.web 导入 python http 模块
【发布时间】:2013-10-10 13:19:54
【问题描述】:

我正在尝试执行一个使用twisted web 的python 程序,但由于某种原因它无法导入http。我对此很陌生,我还不够熟悉来解决这个问题。我做了一些谷歌搜索,但我真的找不到任何似乎与这个特定问题相关的东西,只有一些似乎无法解决问题的模糊相似的东西。

Traceback (most recent call last):
  File "./test.py", line 27, in <module>
    from twisted.web import http
ImportError: cannot import name http

操作系统:CentOS 5.9 Python 版本:2.7.5

$ yum list installed | grep twisted
python-twisted-core.i386              2.5.0-4.el5                      installed
python-twisted-web.i386               0.7.0-1.el5                      installed

这是导入的样子:

 from twisted.web import http

【问题讨论】:

  • 你可以import twisted开始吗?
  • 我在文件开头添加了 import twisted,它没有抱怨。我认为这意味着它可以正常导入?
  • 那么python -c "import twisted; print twisted.version"给你什么?
  • python -c "import twisted; print twisted.version" Traceback(最近一次调用最后):文件“”,第 1 行,在 中 AttributeError: 'module' object has no属性“版本”
  • 我怀疑你有一个非常旧的 Twisted 版本。

标签: python linux python-2.7 twisted twisted.web


【解决方案1】:

我要做的是不依赖任何系统范围的、可能已过期的 Twisted 安装来确保一切设置正确:

$ sudo pip install virtualenv
...
$ cd your/project/dir
$ virtualenv venv
...
$ . venv/bin/activate
$ pip install Twisted
...
$ python -c "import twisted; print twisted.version"
... should print: Version('twisted', 13, 1, 0)
$ python -c "import twisted.web.http"
... should work without ImportError

【讨论】:

  • sudo pip install ... - 总是有趣时代的开始。
  • @Jean-PaulCalderone 您还建议如何安装 virtualenv?
  • 显然来自操作系统包。如果失败,请使用 pip without sudo 并将其安装在 ~/.local 下。
  • 已经指出 - 不要使用“sudo pip install”,而是使用操作系统包或在不使用“sudo”的情况下在本地安装。如果修改答案以反映更好的包管理实践,我将撤回我的反对票。
  • @rdb:你一定是在开玩笑——这个问题是关于 Python/Twisted,而不是 pkg mgmt;此外,对于哪个更好,也没有明确的答案:sudo pip 或 OS pkgs——我个人总是更喜欢 Python 包而不是 OS 包。
猜你喜欢
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 2017-11-02
相关资源
最近更新 更多