【问题标题】:Difference between env/bin/python and env/lib/pythonX.Y (note the lib)env/bin/python 和 env/lib/pythonX.Y 之间的区别(注意 lib)
【发布时间】:2017-07-06 15:34:00
【问题描述】:

抱歉这个菜鸟问题 - 只是想了解 python 的工作流程。

有谁知道 env/bin/python 和 env/lib/python3.6 的区别是什么?知道这将非常有帮助。 (注意不同的路径 - bin 和 lib)

谢谢:)

编辑:我在环境中只安装了一个版本的 python。这里要注意的一件事是 env/bin/python 有一个指向 env/bin/python3.6 的符号链接(显然这是一个二进制文件)。但是在 env/lib/python3.6 中有一个目录,其中有一些像 site-packages 这样的目录,其中存储了已安装的包。

所以我的问题是...... /env/bin 中的二进制文件何时使用以及何时访问该目录?当我在 shell 中说“python”时,它会进入 bin,但是当我在解释器中说“import django”时,它会进入 lib 中的 python3.6 并获取包。我在正确的轨道上吗?

【问题讨论】:

    标签: python linux pip


    【解决方案1】:

    /bin/python 是二进制,解释python代码的程序; lib/pythonX.Y 是程序使用的库。该库是用 C/C++ 和 Python 编写的模块和包的集合。

    lib/pythonX.Y/site-packages 是第 3 方模块的目录; distutils/setuptools/pip 在那里安装软件包。

    站点包之外的 lib/pythonX.Y 中的所有其他内容都是标准库——总是与 python 一起安装的模块。 https://docs.python.org/3/ 的页面记录了标准库,但不记录第 3 方模块。

    【讨论】:

    • 两者的相对路径是不是一定要../lib/pythonX.Y?
    • 虽然可以更改,但通常是的。
    【解决方案2】:

    X和Y代表你使用的python版本。

    【讨论】:

    • 对不起,如果我不清楚...我想问为什么 env/bin 和 env/lib
    【解决方案3】:

    您的机器可以同时存储多个版本的python,使用哪个版本取决于您当前终端的PATH,或者您是否设置并激活了虚拟环境。您可以通过键入命令来判断正在使用哪个 python 解释器

    > which python
    

    如果你同时安装了 python 2.7 和 python 3,你也可以在终端中使用全名来选择一个

    > python my_script.py # run using the default python interpreter
    > python3 my_script.py # run using the configured version of python3
    

    您可以在official Python wiki 中找到一些其他资源,这些资源可能会帮助您了解要使用哪个版本以及为什么要使用。

    【讨论】:

    • 嘿,我在环境中只安装了一个版本的python。这里要注意的一件事是 /env/bin/python 是指向 env/bin/python3.6 的符号链接(显然,这是一个二进制文件)。但是在 env/lib/python3.6 中有一个目录,其中有存储已安装包的站点包之类的目录。那么/env/bin中的二进制文件什么时候使用,什么时候访问dir呢?
    猜你喜欢
    • 2018-06-07
    • 2018-10-07
    • 2020-11-14
    • 2011-07-29
    • 1970-01-01
    • 2021-08-09
    • 2019-08-28
    • 1970-01-01
    • 2015-09-17
    相关资源
    最近更新 更多