Debian上的python搜索路径顺序

时间:2016-01-14 18:39:13

标签: python debian protocol-buffers

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

  1. /usr/local/lib/python2.7/dist-packages/google
  2. /home/myuser/.local/lib/python2.7/site-packages/google(与pip一起安装--user)
  3. 我想要导入2,但是python总是给我1,而ipython导入2.我已经尝试设置 PYTHONPATH 这样/home/myuser/.local/lib/python2.7/site-packages/是第一个,但不起作用。

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

1 个答案:

答案 0 :(得分:0)

是。有关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

您将它放在脚本的顶部。