消除创建nixpkgs派生的繁琐特性的工具
nixpkgs-pytools的Python项目详细描述
python nixpkgs工具
这些脚本是为了消除创建nix的繁琐特性而编写的 nixpkgs的包派生。这些脚本的目的不是 创建一个完美的包派生,但尽可能完整 并指导用户进行必要的更改。
python包初始化
usage: python-package-init [-h] [--version VERSION] [--filename FILENAME] [--stdout] [--nixpkgs-root NIXPKGS_ROOT] [-f] package
positional arguments:
package pypi package name
optional arguments:
-h, --help show this help message and exit
--version VERSION pypi package version (stable if not specified)
--filename FILENAME filename for nix derivation
--stdout Print the nix derivation to stdout
--nixpkgs-root NIXPKGS_ROOT
Root directory of nixpkgs
-f, --force Force creation of file, overwriting when it already exists
python-package-init
现在可以在
pkgs/top-level/python-modules.nix
并将default.nix
写入
pkgs/development/python-modules/<package-name>/default.nix
使用
几乎完全推导。
示例让我们向nixpkgs添加nixpkgs-pytools
。已经在里面了
所以您需要提供-f
(force)选项来强制
这是写给尼克斯帕克斯的。
nix-shell -p nixpkgs-pytools
python-package-init nixpkgs-pytools --nixpkgs-root=<path to nixpkgs>
创建要进入的default.nix
派生
nixpkgs/pkgs/development/python-modules/<pypi-name>/default.nix
。这个
脚本过于冗长,因此不必记住名称
属性。删除那些你不需要的。
python重写导入
usage: python-rewrite-imports [-h] --path PATH [--replace REPLACE REPLACE]
optional arguments:
-h, --help show this help message and exit
--path PATH path to refactor imports
--replace REPLACE REPLACE
module import to replace
重写气流导入示例
nix-shell -p nixpkgs-pytools cd /tmp wget https://github.com/apache/airflow/archive/master.tar.gz tar -xf master.tar.gz python-rewrite-imports --path /tmp/airflow-master \ --replace flask_appbuilder flask_appbuilder_1_13_6237336a2b92fa6ba5f7f14dda56c08af6c0a76a \ --replace pendulum pendulum_1_4_4_55011d302b80c60360e2cc9f3a5ace7336c727c7 grep -R pendulum /tmp/airflow-master
您将注意到所有导入都已重写。重写完成 通过rope强大的重构 许多文本编辑器使用的库。
攻击这些工具
nix-shell
将为您的使用加载正确的环境:
nix-shell