社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

wim

wim 最近创建的主题
wim 最近回复了
3 年前
回复了 wim 创建的主题 » Python3查找两个纪元毫秒之间的持续时间

出于所有实际目的,你可能想与 timedelta 例子使用 只有 毫秒增量:

>>> from datetime import timedelta
>>> print(timedelta(milliseconds=15600000))
4:20:00
3 年前
回复了 wim 创建的主题 » 如何向所有新python的VenV添加默认包

有一个选择:

--system-site-packages
                      Give the virtual environment access to the system
                      site-packages dir.

所以如果你使用 python3 -m venv --system-site-packages .venv 然后,您可以在系统级别安装所有环境可用的软件包。你必须对系统级安装的软件包保持卫生。

如果您发行版上的系统python非常混乱,并且您无法从中删除不希望在venvs中可见的内容,那么您需要寻找另一个选项。

一种可能是将通用软件包安装到某个目标目录:

python3 -m pip install dep1 dep2 --target=/path/to/common

然后使包目录始终可见:

export PYTHONPATH=/path/to/common
3 年前
回复了 wim 创建的主题 » 如何在python f字符串中动态填充数字?

嵌套f字符串:

>>> pad = 4
>>> i = 1
>>> f"foo-{i:>0{pad}}"
'foo-0001'

元数据字段 Requires-Python 使用版本说明符语法,在 PEP 440 :

逗号(“,”)相当于逻辑上的 操作人员

2.7.12不大于 二者都 >=2.5,>=3.0,因此应拒绝安装。

包元数据可能不正确。他们本可以使用>=2.5,因为它已经包含了任何东西>=3.0。

旧版本的 pip 不要解析 需要Python 字段。对该元数据的检查仅适用于 pip>=9.0.0 .

5 年前
回复了 wim 创建的主题 » 什么是Python Buffin?

exc_type 是异常的类。 exc_val 是异常实例。 exc_tb 是一个回溯对象,其中有一个引用 types.TraceBackType .

一般来说

  • type(exc_val) is exc_type
  • exc_val.__traceback__ is exc_tb

请注意 __exit__ 当上下文管理器下的代码没有引发异常时仍调用,并且参数将 (None, None, None) 所以这三个参数都应该注释 可选择的 .

那么正确的注释应该如下所示:

def __exit__(self, exctype: Optional[Type[BaseException]],
             excinst: Optional[BaseException],
             exctb: Optional[TracebackType]) -> bool: ...

您可能想知道为什么这个API有三个参数,而其中两个参数可以从异常实例本身轻松确定。但并不总是这样,在较旧版本的Python中,可以将字符串作为异常来引发,而异常 __traceback__ 属性不存在 until Python 2.5 . 在Python2.7(!)中,仍然可以将旧样式的类作为异常进行提升

6 年前
回复了 wim 创建的主题 » 在python 3中解包语法

在文本对象中有十六进制编码的数据。所以,回到原始的十六进制字节,你可以 译码 文本字符串。请注意,这不是python 3.x中通常的约定(通常,文本字符串已经被解码)。

>>> codecs.decode('e207', 'hex')
b'\xe2\x07'

同样的便利功能:

>>> bytes.fromhex('e207')
b'\xe2\x07'

现在你可以 struct.unpack 那些字节。总而言之:

>>> asd = ['e2','07']
>>> text = ''.join(asd)
>>> encoded = codecs.decode(text, 'hex')
>>> struct.unpack("<H", encoded)
(2018,)

避免 python setup.py test tests_require ,这是一个“特征”的老生常谈。

这只是将测试dep下载到项目的安装目录中,这很少是开发人员希望或期望发生的事情!这在具有虚拟环境的现代CI工作流中不太适用,您希望将依赖项安装到站点包中。

The recommended way to do it using setuptools these days is with an extras_require tag. . 见 here 举个例子。

当前python项目是否应该列出 <4 在里面 python_requires (setup.py)还是不?

不,他们不应该这样做,因为Python4应该*与Python3.9向后兼容。别管它。需求说明符的上界只对以下项目有用 semver 或类似的。

Here is a core developer discussing Python 4 向后兼容:

我目前的预期是,Python4.0将仅仅是“Python3.9之后的版本”。就这样。语言没有深刻的变化,没有重大的向后兼容性中断——从Python3.9到4.0应该和从Python3.3到3.4一样平淡无奇

当Python4.0即将面世时,我们可以希望Python2会死掉,而Python3将被称为“Python”。

6 年前
回复了 wim 创建的主题 » 如何将中间件添加到pythons记录器中

这在stdlib中直接受支持 logging . 创建 SMTPHandler 并将其添加到日志配置中,配置为级别 logging.ERROR 。有几种日志配置方法可用,并记录在案 here .