Python - Linux中的PYTHONPATH

use*_*401 48 python

我是新手,我已经开始学习python,但我有一些我无法理解的问题,

  1. 究竟什么是PYTHONPATH(在ubuntu中)?是一个文件夹?
  2. 默认情况下是在ubuntu中提供python还是必须显式安装?
  3. 所有模块所在的文件夹在哪里(我有很多名为python_的文件夹)?
  4. 如果我希望在编程时使用新模块(例如pyopengl),我应该在哪里介绍我在下载的文件夹中获得的所有文件夹?
  5. 从PYTHONPATH问题回来,如何配置PYTHONPATH以开始处理我的新模块?谢谢.

mgi*_*son 39

1)PYTHONPATH是一个环境变量,您可以设置为添加其他目录,其中python将查找模块和包.例如:

# make python look in the foo subdirectory of your home directory for
# modules and packages 
export PYTHONPATH=${PYTHONPATH}:${HOME}/foo 
Run Code Online (Sandbox Code Playgroud)

在这里我使用sh语法.对于其他shell(例如csh,tcsh),语法会略有不同.要使其永久化,请在shell的init文件中设置变量(通常为〜/ .bashrc).

2)Ubuntu已经安装了python.安装其他(独立)python版本可能有原因,但我发现很少需要.

3)模块所在的文件夹取决于PYTHONPATH安装python时设置目录的位置.在大多数情况下,安装的东西你不应该关心它住在哪里 - Python知道它在哪里,它可以找到模块.有点像发出命令ls- ls住在哪里? /usr/bin/bin?99%的情况下,你不需要关心 - 只要使用ls并感到高兴它就在你身上的某个地方,PATH所以shell可以找到它.

4)我不确定我理解这个问题.第三方模块通常附带安装说明.如果您按照说明操作,python应该能够找到该模块,您不必关心它的安装位置.

5)配置PYTHONPATH包含模块所在的目录,python将能够找到您的模块.

  • 如果Python用户在Ubuntu中安装了Python2.7,Python3.5和Python3.6,`echo $ PYTHONPATH`可以返回`:/usr/local/lib/python3.5/dist-packages:/ usr/local/lib /python2.7/dist-packages:在/ usr/local/lib目录/ python3.6/DIST-packages` (2认同)

mpe*_*kov 30

  1. PYTHONPATH是一个环境变量
  2. 是(请参阅https://unix.stackexchange.com/questions/24802/on-which-unix-distributions-is-python-installed-as-part-of-the-default-install)
  3. /usr/lib/python2.7 在Ubuntu上
  4. 你不应该手动安装包.相反,请使用pip.当一个包不在pip中时,它通常有一个setuptools安装脚本,它将把包安装到适当的位置(见第3点).
  5. 如果你使用pip或setuptools,那么你不需要PYTHONPATH明确设置

如果你看一下pyopengl的说明,你会发现它们与第4点和第5点一致.