小编hos*_*sso的帖子

使用 setup.py 和 setup.cfg 安装模块

我有以下目录结构:

/modules/
/modules/setup.py
/modules/setup.cfg

/modules/module1/
/modules/module1/__init__.py
/modules/module1/tool1/__init__.py
/modules/module1/tool1/tool1.py

/modules/module2/
/modules/module2/__init__.py
/modules/module2/tool2/__init__.py
/modules/module2/tool2/tool2.py
/modules/module2/tool3/__init__.py
/modules/module2/tool3/tool3.py
Run Code Online (Sandbox Code Playgroud)

我想使用 setup.py 和 setup.cfg 安装这些模块,然后像这样导入它们:

import my_project.module1.tool1 
import my_project.module2.tool2
import my_project.module2.tool3 
Run Code Online (Sandbox Code Playgroud)

这些是我的安装文件:

设置文件

import setuptools

setuptools.setup(
    setup_requires=['paramiko>=2.0.1'],
    paramiko=True)
Run Code Online (Sandbox Code Playgroud)

设置文件

[metadata]
name = my_project
summary = my project modules

[files]
packages =
    module1
    module2
Run Code Online (Sandbox Code Playgroud)

当我尝试安装软件包时失败:

/modules# pip install -e .
Obtaining file:///modules
Installing collected packages: UNKNOWN
  Found existing installation: UNKNOWN 0.0.0
    Can't uninstall 'UNKNOWN'. No files were found to uninstall.
  Running setup.py develop for UNKNOWN
Successfully installed …
Run Code Online (Sandbox Code Playgroud)

python pip setuptools setup.py

10
推荐指数
1
解决办法
655
查看次数

Docker容器无法解析主机

从我的主机我可以ping谷歌

$ cat /etc/resolv.conf 
nameserver 127.0.1.1
search my.company.server

$ ping google.com
PING google.com (172.217.16.174) 56(84) bytes of data.
64 bytes from fra15s11-in-f14.1e100.net (172.217.16.174): icmp_seq=1 ttl=54 time=11.0 ms
64 bytes from fra15s11-in-f14.1e100.net (172.217.16.174): icmp_seq=2 ttl=54 time=10.7 ms
Run Code Online (Sandbox Code Playgroud)

从容器我可以到达互联网:

$ docker run ubuntu:14.04 cat /etc/resolv.conf
search my.company.server
nameserver 8.8.8.8
nameserver 8.8.4.4


$ docker run ubuntu:14.04 ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=45 time=16.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=45 time=16.3 ms
Run Code Online (Sandbox Code Playgroud)

但无法ping主机名:

$ …
Run Code Online (Sandbox Code Playgroud)

dns ubuntu docker

8
推荐指数
4
解决办法
3240
查看次数

Grafana 工具提示显示值以及查询中的其他文本字段

我正在使用 Grafana v8.3.5 + Postgres。

并使用时间序列折线图,我想显示查询返回的值,但希望工具提示显示其他信息。

select timestamp as "time", value, build, version, from size;
         timestamp          | build | version   | value 
----------------------------+-------+-----------+-------
 2022-04-24 06:50:10.933324 | 1.11  | 0.1_alpha | 265
 2022-04-24 06:50:45.15727  | 2.11  | 0.1_alpha | 280
 2022-04-24 06:50:52.535592 | 3.11  | 0.1_alpha | 273
 2022-04-24 06:52:12.885316 | 4.11  | 0.1_alpha | 224
...
Run Code Online (Sandbox Code Playgroud)

图表示例

除了实际值之外,工具提示是否有可能显示所有这些额外信息(包含字符串)?我尝试添加一个格式化为表的新查询,但它没有显示为新系列......

postgresql tooltip grafana

6
推荐指数
0
解决办法
1366
查看次数

子进程popen实时输出,带超时

经过一些研究,我一直在使用 subprocess.check_output() ,它接受超时参数,并在达到命令超时时引发 TimeoutExpired 。没关系,但限制是我没有得到实时输出,所以我被迫直接使用 Popen,基本上:

def execute_cmd(cmd, timeout=2):
    p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    for line in iter(p.stdout.readline, b''):
        print(line.rstrip().decode("utf-8"))
    p.stdout.close()
    retcode = p.wait()
Run Code Online (Sandbox Code Playgroud)

如何在这段代码中添加超时?

python subprocess python-3.x

4
推荐指数
1
解决办法
1206
查看次数

已安装 flake8 模块但未安装 /usr/bin

我已经成功安装了 flake8:

$ pip install flake8
Downloading/unpacking flake8
  Downloading flake8-2.5.4-py2.py3-none-any.whl
Downloading/unpacking mccabe<0.5,>=0.2.1 (from flake8)
  Downloading mccabe-0.4.0-py2.py3-none-any.whl
Downloading/unpacking pep8!=1.6.0,!=1.6.1,!=1.6.2,>=1.5.7 (from flake8)
  Downloading pep8-1.7.0-py2.py3-none-any.whl (41kB): 41kB downloaded
Downloading/unpacking pyflakes<1.1,>=0.8.1 (from flake8)
  Downloading pyflakes-1.0.0-py2.py3-none-any.whl (152kB): 152kB downloaded
Installing collected packages: flake8, mccabe, pep8, pyflakes
Successfully installed flake8 mccabe pep8 pyflakes
Cleaning up...

$ pip list|grep flake
flake8 (2.5.4)
pyflakes (1.0.0)
Run Code Online (Sandbox Code Playgroud)

但它没有出现在 /usr (/usr/bin/, /usr/sbin/, /usr/local/...) 下的任何目录中,即“which flake8”没有显示任何内容,所以我可以'不要从控制台手动使用来验证说明中的脚本。

flake8

2
推荐指数
1
解决办法
2015
查看次数

带有外部参数文件的 Dockerfile

我有 2 个 Dockerfile,它们具有公共参数 (ARG),这些参数被传递到实际命令 (RUN) 来构建映像。

是否可以提供一个带有参数的外部文件,以便当我需要更新其中一个文件时,我不需要触及两个 Dockerfile?

docker dockerfile

2
推荐指数
1
解决办法
2355
查看次数