使用可用于 unix 服务器的第三方库制作 Python 代码
Make Python code with third party libraries useable for unix server
我有一个 Python 脚本,它使用 NumPy 和另一个第三方库。第三方库是用 Python 编写的,没有绑定到其他语言。它使我们拥有 Cython、SciPy、NumPy 和 Matplotlib。虽然我只使用了这个库的一小部分,但它没有简单的替代品(科学软件)。
我想使用计算服务器来 运行 我的程序,因为它需要 10 多个小时才能完成。不用说 python 不支持。所以我看到了两种可能性:为 Unix 预编译我的代码或将其转换为 C/C++.
我试过的:
- shedskin:不适用于不受支持的库
- cx_freeze等:错误无数,简单的程序很难运行
- PyInstaller:无法使用 OpenSuse。无法解决第三方库的依赖关系
- Nuitka:我遇到内存错误
欢迎提出任何建议。
Anaconda/Miniconda 非常适合这个问题。它在本地安装到您的用户主目录并安装您需要的所有二进制文件(添加额外的自定义包的工作量很小)。它在设计时特别考虑了 python 科学生态系统(以及所有烦人的构建依赖项)。
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh
export PATH=$PATH:~/miniconda/bin
conda install numpy scipy matplotlib cython
您还会得到一个很好的副作用,即安装一台新机器只需要几秒到几分钟,而不是几分钟到几小时。
设置后,它也与 pip 兼容(即/它在 conda 旁边放置了 pip 的本地副本)
我有一个 Python 脚本,它使用 NumPy 和另一个第三方库。第三方库是用 Python 编写的,没有绑定到其他语言。它使我们拥有 Cython、SciPy、NumPy 和 Matplotlib。虽然我只使用了这个库的一小部分,但它没有简单的替代品(科学软件)。
我想使用计算服务器来 运行 我的程序,因为它需要 10 多个小时才能完成。不用说 python 不支持。所以我看到了两种可能性:为 Unix 预编译我的代码或将其转换为 C/C++.
我试过的:
- shedskin:不适用于不受支持的库
- cx_freeze等:错误无数,简单的程序很难运行
- PyInstaller:无法使用 OpenSuse。无法解决第三方库的依赖关系
- Nuitka:我遇到内存错误
欢迎提出任何建议。
Anaconda/Miniconda 非常适合这个问题。它在本地安装到您的用户主目录并安装您需要的所有二进制文件(添加额外的自定义包的工作量很小)。它在设计时特别考虑了 python 科学生态系统(以及所有烦人的构建依赖项)。
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh
export PATH=$PATH:~/miniconda/bin
conda install numpy scipy matplotlib cython
您还会得到一个很好的副作用,即安装一台新机器只需要几秒到几分钟,而不是几分钟到几小时。
设置后,它也与 pip 兼容(即/它在 conda 旁边放置了 pip 的本地副本)