小编Ner*_*ste的帖子

使用 setup.cfg 和通过 attr 访问的版本时出现 ModuleNotFoundError

我有一个具有以下结构的 Python 包:

??? setup.cfg
??? setup.py
??? src
    ??? myproject
        ??? base.py
        ??? __init__.py
        ??? version.py
Run Code Online (Sandbox Code Playgroud)

在 中setup.cfg,版本定义为attr

[metadata]
name = myproject
version = attr: myproject.version.__version__
Run Code Online (Sandbox Code Playgroud)

随着version.py被简单地说:

[metadata]
name = myproject
version = attr: myproject.version.__version__
Run Code Online (Sandbox Code Playgroud)

该软件包具有 中列出的依赖项setup.cfg。另一方面,包的顶级__init__.py导入包的一些对象:

__version__ = "1.2.3"
Run Code Online (Sandbox Code Playgroud)

而且,显然,base.py从依赖项中导入了一些对象。

现在的问题是,如果我python setup.py在未安装依赖项时尝试使用,我有一个ModuleNotFoundError/ ImportError,因为__init__.py导入了导入这些依赖项的对象(这对于管理版本文件的 Python 文档案例 6 非常重要):

from myproject.base import Stuff

__all__ = ["Stuff"]
Run Code Online (Sandbox Code Playgroud)

这使得无法安装依赖项。那么针对版本文件的最佳策略应该是什么? …

setuptools setup.py python-3.x

6
推荐指数
1
解决办法
1399
查看次数

Vim Tabular:如何忽略长评论

Tabular在 Vim 中使用来将 Python 中数据文件的定义与一些长注释对齐:

# A long comment here with many words
param_1 = 42
parameter_2 = 0.25

# Another long comment
para_3 = 'abc'
parameter_number_4 = some_var
Run Code Online (Sandbox Code Playgroud)

如果我Tabularize /=在选择上使用,评论也会被处理,因为有些评论很长,我得到:

# A long comment here with many words
param_1                               = 42
parameter_2                           = 0.25

# Another long comment
para_3                                = 'abc'
parameter_number_4                    = some_var
Run Code Online (Sandbox Code Playgroud)

这不是我想要的。#有没有办法忽略选择中以“”开头的行?为了获得这样的东西:

# A long comment here with many words
param_1            = 42
parameter_2        = 0.25

# Another long comment …
Run Code Online (Sandbox Code Playgroud)

python vim tabular

5
推荐指数
1
解决办法
593
查看次数

标签 统计

python ×1

python-3.x ×1

setup.py ×1

setuptools ×1

tabular ×1

vim ×1