Linux上的Python-PYTHONPATH

2024-04-25 17:52:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Tags: 模块文件夹ubuntu编程pyopenglpythonpath新手
3条回答
  1. PYTHONPATH是一个environment variable
  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点是一致的。

1)PYTHONPATH是一个环境变量,您可以将其设置为添加附加目录,python将在其中查找模块和包。e、 g.:

# make python look in the foo subdirectory of your home directory for
# modules and packages 
export PYTHONPATH=${PYTHONPATH}:${HOME}/foo 

这里我使用sh语法。对于其他shell(例如cshtcsh),语法将略有不同。要使其永久,请在shell的in it文件中设置变量(通常为~/.bashrc)。

2)Ubuntu已经安装了python。安装其他(独立的)python版本可能是有原因的,但我发现很少有必要这样做。

3)模块所在的文件夹依赖于PYTHONPATH,并且在安装python时,目录是在哪里设置的。在大多数情况下,安装的东西你不应该关心它在哪里——Python知道它在哪里,它可以找到模块。有点像发出命令ls——哪里有ls活动?/usr/bin/bin?99%的情况下,你不需要在意——只要使用ls并高兴它生活在你的PATH上,这样外壳就能找到它。

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

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

PYTHONPATH是一个环境变量,这些内容被添加到Python查找模块的sys.path中。你可以随意设定。

但是,不要弄乱PYTHONPATH。很多时候,你做错了,从长远来看只会给你带来麻烦。例如,虚拟环境可以做一些奇怪的事情

我建议你学how to package a Python module properly,也许用this easy setup。如果你特别懒,你可以用cookiecutter为你做所有的艰苦工作。

相关问题 更多 >

    热门问题