使 Python 代码与第三方库可用于 unix 服务器

Posted

技术标签:

【中文标题】使 Python 代码与第三方库可用于 unix 服务器【英文标题】:Make Python code with third party libraries useable for unix server 【发布时间】:2015-08-12 07:31:58 【问题描述】:

我有一个使用 NumPy 和另一个第三方库的 Python 脚本。第三方库是用 Python 编写的,没有与其他语言的绑定。它让我们使用 Cython、SciPy、NumPy 和 Matplotlib。虽然我只使用了这个库的一小部分,但它并不容易替代(科学软件)。

我想使用计算服务器来运行我的程序,因为它需要 10 多个小时才能完成。不用说不支持python。所以我看到了两种可能性:为 Unix 预编译我的代码或将其转换为 C/C++。

我尝试了什么:

shedskin:不适用于不受支持的库 cx_freeze et al.:错误无数,简单的程序很难运行 PyInstaller:无法使用 OpenSuse。无法解析第三方库的依赖关系 Nuitka:出现内存错误

欢迎提出任何建议。

【问题讨论】:

如果是标准的unix盒子,你不能用pip吗? 看看 Nuitka,但我不确定它是否支持这些库。 nuitka.net/pages/overview.html @muddyfish 你能提供一些额外的信息吗?我不精通 Unix。 在命令行中,输入“pip install numpy”、“pip install scipy”、“pip install matplotlib”等。如果它们不起作用,请尝试使用“pip search”命令查看是否你可以自己找包 @muddyfish 我没有使用 pip 的权利。对不起,我的误解。接下来我将尝试从源代码构建 Python,我怀疑它可能会工作。 【参考方案1】:

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 兼容(即/它将 pip 的本地副本放在 conda 旁边)

【讨论】:

很好的答案!如果我可以补充:我不得不用chmod +x <file>.sh改变模式

以上是关于使 Python 代码与第三方库可用于 unix 服务器的主要内容,如果未能解决你的问题,请参考以下文章

python标准库之argparse

python add_argument() 的使用方法

JCR 存储库可用于 Junit 测试

NER----pythonNLP工具包

使 Sonatype Nexus 存储库可公开访问,以便能够下载带有 maven Central 等 URL 的工件

Django框架的简介