Jus*_*tin 4 python environment-variables python-2.7
我一直在学习Python,我在2.7.3工作,我正在努力理解import语句.
该文件说,当你试图导入一个模块,解释器将首先搜索内置的模块之一.
内置模块是什么意思?
然后,文档说明解释器在sys.path列出的目录中搜索,并且sys.path是从这些源初始化的:
PYTHONPATH(目录名列表,语法与shell变量相同PATH).这是我的计算机使用python在命令行模式下的sys.path命令的示例输出:(我删除了一些以便它不会很大)
['', '/usr/lib/python2.7', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol']
Run Code Online (Sandbox Code Playgroud)
现在,我假设''路径指向包含'script'的目录,所以我想其余的将来自我的PYTHONPATH环境变量.但是,当我去终端并输入时env,PYTHONPATH不存在作为环境变量.我import os当时也试过了os.environ,但是得到了相同的输出.
我真的没有PYTHONPATH环境变量吗?我不相信我曾经特别定义过PYTHONPATH环境变量,但我认为当我安装新包时,它们会自动更改该环境变量.如果我没有PYTHONPATH,我的sys.path如何填充?如果我下载新软件包,如果我没有这个PYTHONPATH变量,Python如何知道在哪里查找它们?
环境变量如何工作?根据我的理解,环境变量特定于它们设置的过程,但是,如果我打开多个终端窗口并运行env,它们都会显示许多相同的变量,例如,PATH.我知道持久性环境变量的文件位置,例如/etc/environment,它包含我的PATH变量.是否可以分辨存储持久环境变量的位置?存储新的持久环境变量的建议位置是什么?环境变量实际上如何使用Python解释器?Python解释器寻找PYTHONPATH,但它如何在细节级别工作?
这么多问题一气呵成!:)
好吧,我试着只回答其中的几个.
1)内置模块是随python发行版一起提供的任何模块.例如,sys和os模块是内置模块.真的是这样的.
2)系统默认情况下PYTHONPATH变量不存在.当你启动python解释器时,它会按照你描述的方式填充搜索模块的路径数组.这是sys.path的结果.但是sys.path不是环境变量PYTHONPATH.如果在系统中设置PYTHONPATH,则其中包含的所有路径都将包含在python的解释器用于搜索模块的数组中.
我将为其他人留下环境变量的答案,因为我觉得我不是回答这个问题的合适人选.我的感觉是,它可能会在不同系统之间发生变化.无论如何...
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
8606 次 |
| 最近记录: |