【问题标题】:python search paths order on DebianDebian上的python搜索路径顺序
【发布时间】:2016-01-19 04:44:53
【问题描述】:

我的 Debian(stretch) 上有两个 google.protobuf 模块。

  1. /usr/local/lib/python2.7/dist-packages/google
  2. /home/myuser/.local/lib/python2.7/site-packages/google(使用 pip --user 安装)

我想导入 2,但 python 总是给我 1,而 ipython 导入 2。我尝试设置 PYTHONPATH 使得 /home/myuser/.local/lib/python2.7/site-packages/ 是其中的第一个,但不工作。

有什么办法可以强制 python 先搜索我的 $HOME/.local/lib/python2.7/site-packages/

【问题讨论】:

    标签: python debian protocol-buffers


    【解决方案1】:

    是的。有关 python 如何确定首先导入哪个模块的官方说明,请参见此处:https://docs.python.org/2/tutorial/modules.html#the-module-search-pathkk

    请参阅此处了解更改默认行为的方法:http://www.hasenkopf2000.net/wiki/python/how-override-pythons-module-import-order/

    在 hasenkopf 网站上提供的两种解决方案中,如果您改变了要使用哪个模块的想法,则第二种解决方案的问题会更小。您只需编辑文件,而不必记住您创建了哪些符号链接。简单来说,代码是:

    import sys
    # Assume path to module is
    # /path/to/recent/version/of/module.py
    sys.path.insert(0,"/path/to/recent/version/of")
    import module
    

    您将它放在脚本的顶部。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 2015-04-07
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多