python的//是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的//是啥相关的知识,希望对你有一定的参考价值。

Python中的//是向下取整的意思。
a//b,应该是对除以b的结果向负无穷方向取整后的数
5//2=2(2.5向负无穷方向取整为2),同时-5//2=-3(-2.5向负无穷方向取整为-3)
/与//的区别
在Python中/表示浮点整除法,返回浮点结果,也就是结果为浮点数;而//在Python中表示整数除法,返回大于结果的一个最大的整数,意思就是除法结果向下取整。
参考技术A python语法中, / 是除法,例如:2/3 = 0.6666。而//是表示向下取整的除法,例如3//2=1,6.0//4 = 1。也就是说 / 返回的是浮点类型的结果, 而 // 返回的是整数结果(可以理解为/的整数部分)。

python的站点包目录是啥?

【中文标题】python的站点包目录是啥?【英文标题】:What is python's site-packages directory?python的站点包目录是什么? 【发布时间】:2015-07-13 13:25:14 【问题描述】:

目录site-packages在各种Python相关文章中都有提及。它是什么?怎么用?

【问题讨论】:

【参考方案1】:

site-packages 是手动构建的 Python 包的目标目录。当您从源代码构建和安装 Python 包时(使用 distutils,可能通过执行 python setup.py install),默认情况下会在 site-packages 中找到已安装的模块。

有标准位置:

Unix(纯)1prefix/lib/pythonX.Y/site-packages Unix(非纯):exec-prefix/lib/pythonX.Y/site-packages Windows:prefix\Lib\site-packages

1Pure 表示该模块仅使用 Python 代码。 非纯也可以包含 C/C++ 代码。

site-packages 默认是 Python 搜索路径 的一部分,因此安装在那里的模块可以在之后轻松导入。


有用的阅读

Installing Python Modules(适用于 Python 2) Installing Python Modules(适用于 Python 3)

【讨论】:

位置恰好是 ubuntu 上的 /usr/local/lib/python3.6/site-packages 我在lib64看到过Gentoo系统! 是 conda 或 pip 安装到站点包中,还是只是手动构建的包? 真正有趣的问题是:为什么是这个目录?为什么不直接安装到/usr/lib/python3.6 @MJimitater 我不会那样做。我认为创建虚拟环境并指定 --no-site-packages 可能会更好(这应该是默认值,但由于各种原因可能不适用于您的情况。)virtualenv --no-site-packages --python=/path/to/python/executable/python ENV_DIR_NAME【参考方案2】:

当您将--user 选项与 pip 一起使用时,该软件包将安装在用户文件夹而不是全局文件夹中,您无需以管理员权限运行 pip 命令。

用户的包文件夹的位置可以通过以下方式找到:

python -m site --user-site

这将打印如下内容:

C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages

当您不将--user 选项与 pip 一起使用时,该软件包将安装在以下提供的全局文件夹中:

python -c "import site; print(site.getsitepackages())"

这将打印如下内容:

['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'

注意:以上打印值适用于在 Windows 10 上安装了 Anaconda 4.x 的默认值。

【讨论】:

删除它安全吗?我总是发现将软件包安装到特定环境中是行不通的,因为它被发现 unser site-packages 你不应该使用这个目录,因为它是由包管理器管理的。 但是只删除site-packages 中的特定包呢? python 中的 --user 参数似乎对 Windows 有效,但对 Linux 无效。在 Linux 中,每个人都是用户,我认为即使是 root【参考方案3】:

site-packages 只是 Python 安装其模块的位置。

不需要“找到它”,python 自己知道在哪里找到它,这个位置总是是 PYTHONPATH (sys.path) 的一部分。

您可以通过编程方式找到它:

import sys
site_packages = next(p for p in sys.path if 'site-packages' in p)
print site_packages

'/Users/foo/.envs/env1/lib/python2.7/site-packages'

【讨论】:

导入站点可能比 site.getsitepackages() 更容易 并非所有 Python 发行版都有site-packages,这将引发StopIteration。例如,Debian(和 Ubuntu)有 dist-packages 来安装他们的分布式模块。 如果您使用 virtualenv 并且不继承全局包,那么这将始终有效。我从来没有在没有 virtualenv 的情况下编写代码【参考方案4】:

在我的 CentOS7.9 Linux(RedHat 克隆)上,它位于 ~/.local/lib/python3.9/site-packages/ 中,无需将其包含在 PYTHONPATH 变量中。

【讨论】:

【参考方案5】:

根据here:

Python 安装在模块内有一个 site-packages 目录 目录。该目录是用户安装包的位置 掉了。

虽然它没有解释为什么选择站点这个词,但它解释了这个目录的意义

【讨论】:

该链接来自 2009 年;你有什么更新的,清晰简洁的吗? @denis 在该链接的左下角,它显示v:latest。也许是最新的。

以上是关于python的//是啥的主要内容,如果未能解决你的问题,请参考以下文章

python // 和 / 的区别是啥?

python中//是啥意思

最近在自学python girlphoto_urls = selector.xpath('//div/a/img/@src')这句是啥意思?大神

python中,print(type12/4))的结果是啥类型的?

存储 Python 程序设置的官方方式是啥?

#!/usr/bin/env python与#!/usr/bin/python的区别