跨平台安装注意事项
虽然Python本身是跨平台的,但是FullTClash需要的依赖包/库对于跨平台的兼容性并不是很好。这体现在某些库是用某些语言编写的(例如Rust、C/C++),这些包/库只是给对python做了接口适配。让Python能够调用而已。
正常情况下,我们通过:
来安装一个第三方库/模块
但是这样有时候会无法安装,pip的大致搜索策略是:找到预编译的wheel包(构建轮子),找到是最好的情况,可以直接安装,但是也有可能找不到。由于python版本众多,平台也不尽相同。如果从 pypi或者镜像站找不到预编译的轮子,就会尝试本地构建。本地构建跨语言编写的包可能会出错!!
pip会尝试用本地编译的工具链帮你构建轮子, 最常见的编译工具链应该是 GCC。这时你就会发现安装这这个包的时间会更久,因为大部分时间都在构建轮子。
最坏情况是,pip没有找到编译工具链。
很不幸的是,本项目中有一个依赖包:cryptography 是一个加密套件库,是用rust写的。在不常用的环境中比如 Termux、Openwrt,通常pip无法找到它们预构建的轮子。
所以需要用到rust的编译器:rustc 来手动构建轮子。
先别急着装rust编译器,尝试使用你的系统包管理器查找有没有帮你构建好的。
比如openwrt可以搜索:
一般都会有。使用包管理器安装即可。也就是说,对于pip无法安装的包,尝试使用系统的包管理器安装。
以下列出本项目涉及其他语言的包/库:
库名 | 用途 | 涉及语言 |
---|---|---|
cryptography | 加密密码学库 | Rust |
aiohttp | 异步HTTP框架 | C/Cython |
Pillow | 图像处理/绘图 | C |
tgcrypto | 为Telegram适配的加密库 | C |
PyYAML | yaml格式处理 | Cython |
google-re2 | 更安全的正则引擎 | C++ |
Last updated