2017-07-06 75 views
1

对于noob问题抱歉 - 试图了解python的工作流程。env/bin/python和env/lib/pythonX.Y之间的区别(注意lib)

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

谢谢:)

编辑:我只安装在环境蟒蛇的一个版本。这里要注意的一点是,env/bin/python有一个到env/bin/python3.6的符号链接(显然,它是一个二进制文件)。但是在env/lib/python3.6中有一个目录,其中存储了安装软件包所在的站点包等目录。

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

回答

2

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

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

在site-packages之外的lib/pythonX.Y中的其他内容是标准库 - 总是使用python安装的模块。 https://docs.python.org/3/的页面记录了标准库,但不包含第三方模块。

+0

两者之间的相对路径是否必须是../lib/pythonX.Y? –

+0

通常是的,但它可以改变。 – phd

0

X和Y代表您正在使用的python版本。

+0

对不起,如果我不清楚......我打算问为什么env/bin和环境/ lib –

0

您的机器可以同时存储多个版本的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中找到一些其他资源,这可能会帮助您了解要使用的版本以及原因。

+0

嘿,我只有一个版本的Python安装在环境中。在这里需要注意的是/ env/bin/python是一个env/bin/python3.6的符号链接(显然,这是一个二进制文件)。但是在env/lib/python3.6中有一个目录,其中存储了像存储已安装软件包的site-packages这样的目录。那么何时使用/ env/bin中的二进制文件以及何时访问了dir? –

相关问题