当PIP不起作用时在MS Azure上安装软件包

时间:2019-12-17 20:48:04

标签: python azure azure-devops ta-lib

我正在尝试在MS Azure Jupyter笔记本环境上安装此https://github.com/mrjbq7/ta-lib软件包。在我本地的Anaconda环境中,一切都很好。

PIP会产生“故障排除”部分中描述的第一个错误,但是我不理解该解决方案。

接下来,我在azure项目站点上尝试了终端,但是当我尝试使用wget -c url加载tar文件时,我被拒绝了权限。

我可以将tar文件上传到项目文件夹中,但是我不知道如何通过终端找到该文件。

还有其他方法可以尝试吗?

2 个答案:

答案 0 :(得分:0)

MS Jupyter笔记本中没有gcc发行版和sudo权限,因此,当尝试通过pip安装TA-Lib时,会出现如下图所示的错误,因为没有其预编译的wheel文件以安装在its PyPI page中,而talib Python软件包则需要gcc才能用C编译TA-Lib源代码。

enter image description here

enter image description here

因此解决方案是手动将talib库作为源文件中的wheel文件进​​行编译和打包,然后将其及其依赖项上载并安装到Microsoft Azure Notebook中,最后您可以使示例代码按以下方式工作:下图。

enter image description here

这是我的详细步骤,我是在本地Windows计算机的WSL中​​完成的。您可以尝试在Linux计算机上执行相同的操作

  1. 要创建一个新目录并在Python 3.6中使用virtualenv对其进行初始化

    enter image description here

  2. 按照mrjbq7/ta-libREADME.md内容安装TA-Lib C源代码,作为TA-Lib Python软件包的依赖项。它需要gccmake首先安装在Linux中。

    enter image description here

  3. mrjbq7/ta-lib的发行版页面下载其源代码,然后按照以下命令对其进行解压缩和编译。

    enter image description here

    $ tar -xzf TA_Lib-0.4.17.tar.gz
    $ cd ta-lib-TA_Lib-0.4.17
    $ pip install numpy
    $ make
    $ pip wheel --wheel-dir=talib ta-lib
    $ cd talib
    
  4. 成功完成第3步后,在TA_Lib-0.4.17-cp36-cp36m-linux_x86_64.whl目录中有一个名为talib的文件,如下图。

    enter image description here

  5. 重要TA-Lib需要从步骤3编译的名为libta_lib.so.0的运行时库,您可以在路径/usr/lib中找到它真实文件的名称为libta_lib.so.0.0.0,因此您需要复制libta_lib.so.0.0.0并用libta_lib.so.0重命名。

    enter image description here

  6. 将步骤4和5的文件TA_Lib-0.4.17-cp36-cp36m-linux_x86_64.whllibta_lib.so.0上传到MS Azure Notebook中的项目中,如下图所示。

    enter image description here

  7. 最后,您可以从您自己的wheel文件安装TA-Lib并成功运行。

    enter image description here

答案 1 :(得分:0)

感谢您的广泛回答。经过一番往复后,我设法编译了一些与轮文件相似的东西。我使用的是win10 ubuntu终端,它有其自身的问题,默认情况下缺少各种依赖项。

无论如何,现在看来我是在Azure环境不接受的python 2.7下编译.whl文件的,尽管我非常确定我已将ubuntu python版本升级到了3.6

!pip install TA_Lib-0.4.17-cp27-cp27mu-linux_x86_64.whl
  

错误:此平台不支持TA_Lib-0.4.17-cp27-cp27mu-linux_x86_64.whl。

由于我可能不得不重复该过程,因此需要一些详细的问题:

1)在第一步中我需要什么virtualenv?我的ubuntu发行版应该已经使用python安装了吗?

2)我需要步骤2和3吗?在我未经训练的人看来,第3步只是更新了tar文件的第2步。