我有以下目录结构:
/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) 从我的主机我可以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) 我正在使用 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)
除了实际值之外,工具提示是否有可能显示所有这些额外信息(包含字符串)?我尝试添加一个格式化为表的新查询,但它没有显示为新系列......
经过一些研究,我一直在使用 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)
如何在这段代码中添加超时?
我已经成功安装了 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”没有显示任何内容,所以我可以'不要从控制台手动使用来验证说明中的脚本。
我有 2 个 Dockerfile,它们具有公共参数 (ARG),这些参数被传递到实际命令 (RUN) 来构建映像。
是否可以提供一个带有参数的外部文件,以便当我需要更新其中一个文件时,我不需要触及两个 Dockerfile?
docker ×2
python ×2
dns ×1
dockerfile ×1
flake8 ×1
grafana ×1
pip ×1
postgresql ×1
python-3.x ×1
setup.py ×1
setuptools ×1
subprocess ×1
tooltip ×1
ubuntu ×1