我正在使用具有tensorflow
包依赖项的setuptools 。我注意到当我运行时setup.py install
,它发现tensorflow 1.13.0rc2
. 当我运行时pip
,它发现tensorflow 1.12
.
然后我发现这张票似乎表明setuptools
包括包预发布(即发布候选,RC),而pip
除非您指定--pre
参数,否则不会。
我想知道是否有人对如何排除预发布版本有任何提示,setuptools
以免python setup.py install
将它们拉进来。
我们在一个 repo 中有一些 gRPC 的 proto 文件,我读到提交生成的代码并不好。所以我想我需要将生成作为包安装的一部分(例如 setuptools、setup.py)
但是,要生成 gRPC 代码,您需要先pip install grpcio-tools
根据docs运行安装包。但是 setup.py 的目的是自动下拉依赖,比如grpcio-tools。
那么是否有这样做的最佳实践?如在,如何从 setuptools 中生成依赖于另一个 python 包的代码?我最好创建一个单独的build.sh
脚本来手动 pip-installs 并生成代码吗?或者我应该期望软件包的用户已经安装了grpcio-tools吗?
我有一个 Apache Bench POST 测试命令,例如:
ab -p test.json -n 1000 -c 100 -T "application/json" "http://localhost:8080/test"
然而,我的 test.json 非常简单,例如:
{"foo": 1}
是否可以直接将其读取到ab
命令中,而无需文件引用?就像是:
ab -p '{"foo": 1}' -n 1000 -c 100 -T "application/json" "http://localhost:8080/test"
(我知道这行不通,只是想知道是否有一个好的 linux 文件模仿技巧之类的)
目前我唯一的解决方法是:
echo '{"foo": 1}' > test.json && ab -p test.json -n 1000 -c 100 -T "application/json" "http://localhost:8080/test" && rm test.json
但我发现这有点太笨拙了。
我见过 PyPI 发行版名称以及带有数字的 Python 包名称。例如flake8就是一个示例,您还可以使用import flake8
.
根据 PyPI 和 PEP 标准,包名中可以有数字吗?我知道出于语法原因您不能以数字开头,但是从标准的角度来看,它可以放在中间还是结尾?
python ×3
setuptools ×3
pip ×2
apache ×1
apachebench ×1
distutils ×1
grpc ×1
grpc-python ×1
http ×1
pypi ×1
tensorflow ×1