了解OSX中的$ PYTHONPATH

时间:2015-12-29 23:45:14

标签: python macos pythonpath

当我输入echo $PYTHONPATH时,它会返回一个空字符串。

但是,当我输入python -c 'import sys;print sys.path'时,我会收到以下内容:

['', '/Users/adamg/src/lasagne/examples/src/lasagne', 
'/Users/adamg/anaconda/lib/python2.7/site-packages/six-1.10.0-py2.7.egg', 
'/Users/adamg/anaconda/lib/python27.zip', '/Users/adamg/anaconda/lib/python2.7',
'/Users/adamg/anaconda/lib/python2.7/plat-darwin',
'/Users/adamg/anaconda/lib/python2.7/plat-mac', '/Users/adamg/anaconda/lib/python2.7/plat-mac/lib-scriptpackages', 
'/Users/adamg/anaconda/lib/python2.7/lib-tk', 
'/Users/adamg/anaconda/lib/python2.7/lib-old', 
'/Users/adamg/anaconda/lib/python2.7/lib-dynload', 
'/Users/adamg/anaconda/lib/python2.7/site-packages', 
'/Users/adamg/anaconda/lib/python2.7/site-packages/Sphinx-1.2.3-py2.7.egg', 
'/Users/adamg/anaconda/lib/python2.7/site-packages/aeosa', 
'/Users/adamg/anaconda/lib/python2.7/site-packages/cryptography-0.8-py2.7-macosx-10.5-x86_64.egg', 
'/Users/adamg/anaconda/lib/python2.7/site-packages/setuptools-18.4-py2.7.egg'] 

和python3 python3 -c 'import sys;print(sys.path)'

['', 
'/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/python34.zip', 
'/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/python3.4', 
'/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin', 
'/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/lib-dynload', 
'/usr/local/lib/python3.4/site-packages']

我应该删除其中一些吗?此外,我应该设置$ PYTHONPATH,以便默认情况下可以在Python 3.x中进行科学计算?

2 个答案:

答案 0 :(得分:3)

模块搜索路径:

  • 首先搜索内置模块
  • 接下来,它会在( function( $ ) { $( document ).ready(function() { $('.accordian > ul > li > a').click(function() { $('.accordian li').removeClass('active'); $(this).closest('li').addClass('active'); var checkElement = $(this).next(); if((checkElement.is('ul')) && (checkElement.is(':visible'))) { $(this).closest('li').removeClass('active'); checkElement.slideUp('normal'); } if((checkElement.is('ul')) && (!checkElement.is(':visible'))) { $('.accordian ul ul:visible').slideUp('normal'); checkElement.slideDown('normal'); } if($(this).closest('li').find('ul').children().length == 0) { return true; } else { return false; } }); }); } )( jQuery ); 给出的目录列表中搜索该模块,该列表是从这些位置初始化的:

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

如何更改sys.path:

  • sys.path
  • sys.path.insert(_number_, '/whateverfilepath/')使用1代替0,以便Python首先查看当前工作目录

答案 1 :(得分:1)

您只是看到当前的工作目录以及您网站(Anaconda)安装的路径默认值。 From the docs:

  

sys.path:指定搜索路径的字符串列表   模块。从环境变量PYTHONPATH初始化,加上一个   与安装相关的默认值。

     

在程序启动时初始化,此列表的第一项,   path [0],是包含用于的脚本的目录   调用Python解释器。如果脚本目录不是   可用的(例如,如果以交互方式调用解释器,或者如果是   脚本是从标准输入读取的),path [0]是空字符串,   它指示Python首先搜索当前目录中的模块。   请注意,脚本目录在条目之前插入   由于PYTHONPATH而被插入。

     

程序可以自行修改此列表。

     

版本2.3中更改:不再忽略Unicode字符串。

     

另请参阅模块site介绍如何使用.pth文件进行扩展   sys.path中。