【问题标题】:how to import the new installed module whie an old same module exists如何在存在旧的相同模块的情况下导入新安装的模块
【发布时间】:2011-07-16 07:35:45
【问题描述】:

大家!

内置的pycurl模块没有定义Curl对象

conn = pycurl.Curl()

错误信息:

“pycurl”模块没有属性Curl

所以我下载了最新的 pycurl 并安装它,但它仅在我在交互式 python 解释器中运行代码时才有效,当我将它作为脚本文件运行时出现同样的错误。

似乎当我将它作为脚本文件运行时,旧的pycurl模块将被包含在内。

如何导入新的 pycurl 模块或删除旧的 pycurl 模块?提前致谢。

PS。

在 pydoc 中,'.' 下的 pycurl(old) 模块是可点击的,重定向到只说“模块没有属性Curl”的页面,而'/usr/local/lib/python2.7/dist-packages'下的那个(新)是灰色且不可点击

【问题讨论】:

    标签: python pycurl python-module python-import


    【解决方案1】:

    这是什么时候找到的问题。 Python 中使用的基本导入处理程序会查看sys.path 中指定的路径以查找模块,在找到与pycurl 匹配的内容后,它将使用它而不是进一步查找。

    因此,您需要将自己的 pycurl 副本放在模块搜索路径的更高位置,或者在您自己的脚本中执行类似 sys.path.insert(1, '/path/to/my-pycurl') 的操作,并使用包含 pycurl 包的目录的路径。

    【讨论】:

    • 非常感谢,效果很好!它在将 sys.path.insert() 的第一个参数设置为 0 时起作用
    • @gbstack:如果尝试将其插入位置 1 时它不起作用,那么它会在目录 sys.path[0] 中找到错误的 pycurl,这是脚本的目录。欢迎您将其插入 0,但我发现 1 更安全,因为我知道我自己目录中的模块/包将始终占上风。
    猜你喜欢
    • 1970-01-01
    • 2017-08-03
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 2018-11-10
    • 2017-01-29
    • 2023-03-17
    相关资源
    最近更新 更多