Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux上的PYTHONPATH_Python_Pythonpath - Fatal编程技术网

Linux上的PYTHONPATH

Linux上的PYTHONPATH,python,pythonpath,Python,Pythonpath,我是这方面的新手,我已经开始学习Python了,但是我有一些问题我不能理解 PYTHONPATH(在Ubuntu上)到底是什么?是文件夹吗 Python是在Ubuntu上默认提供的,还是必须显式安装 所有模块所在的文件夹在哪里(我有很多名为python\uuz)的文件夹) 如果我希望一个新模块在我编程(如pyopengl)时工作,我应该去哪里介绍我下载的文件夹中的所有文件夹 回到PYTHONPATH问题,我如何配置PYTHONPATH以开始处理我的新模块 1) PYTHONPATH是一个环境变量

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

  • PYTHONPATH(在Ubuntu上)到底是什么?是文件夹吗
  • Python是在Ubuntu上默认提供的,还是必须显式安装
  • 所有模块所在的文件夹在哪里(我有很多名为
    python\uuz
    )的文件夹)
  • 如果我希望一个新模块在我编程(如pyopengl)时工作,我应该去哪里介绍我下载的文件夹中的所有文件夹
  • 回到PYTHONPATH问题,我如何配置PYTHONPATH以开始处理我的新模块
  • 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(例如,
    csh
    tcsh
    ),语法会略有不同。要使其永久化,请在shell的init文件中设置该变量(通常为~/.bashrc)

    2) Ubuntu已经安装了python。可能有安装其他(独立)python版本的原因,但我发现这几乎没有必要

    3) 模块所在的文件夹依赖于
    PYTHONPATH
    以及安装python时设置目录的位置。在大多数情况下,安装的东西你不应该关心它在哪里——Python知道它在哪里,它可以找到模块。有点像发出命令
    ls
    ——ls在哪里<代码>/usr/bin<代码>/bin?99%的时候,你不需要在意——只需使用
    ls
    ,并为它位于你的
    路径上的某个地方而感到高兴,这样shell就可以找到它

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

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

  • PYTHONPATH
    是一个
  • 是(见)
  • Ubuntu上的
    /usr/lib/python2.7
  • 您不应该手动安装软件包。相反,使用。当一个包不在pip中时,它通常有一个安装脚本,可以将包安装到正确的位置(参见第3点)
  • 如果使用pip或setuptools,则无需显式设置
    PYTHONPATH

  • 如果查看的说明,您会发现它们与第4点和第5点一致。

    PYTHONPATH
    是一个环境变量,这些内容被添加到Python查找模块的
    sys.path
    中。你可以把它设置成你喜欢的任何东西

    但是,不要弄乱PYTHONPATH
    。通常情况下,你做得不对,从长远来看,这只会给你带来麻烦。例如,虚拟环境可能会做一些奇怪的事情


    我建议你学习,也许使用。如果你特别懒,你可以用它来为你做所有的艰苦工作。

    如果Python用户在Ubuntu中安装了Python2.7、Python3.5和Python3.6,
    echo$PYTHONPATH
    可能返回
    :/usr/local/lib/python3.5/dist软件包:/usr/local/lib/python2.7/dist软件包:/usr/local/lib/python3.6/dist软件包
    我怀疑会出现否决票,因为这个问题没有直接解决OP的问题。现在是这样。捣乱
    PYTHONPATH
    仍然是个糟糕的主意。