【问题标题】:Installing package on MS Azure when PIP doesnt work当 PIP 不起作用时在 MS Azure 上安装包
【发布时间】:2019-12-17 20:48:04
【问题描述】:

我正在尝试在 MS Azure Jupyter 笔记本环境中安装此 https://github.com/mrjbq7/ta-lib 包。在我当地的 anaconda 环境中,这一切都运行良好。

PIP 产生故障排除部分中描述的第一个错误,但我不明白解决方案。

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

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

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

【问题讨论】:

    标签: python azure azure-devops ta-lib


    【解决方案1】:

    MS Jupyter notebook 中没有gcc 分发和sudo 权限,所以当你尝试通过pip 安装TA-Lib 时会出现下图的错误,因为没有它的预编译wheel 文件安装在its PyPI pagetalib Python 包需要gcc 在C 中编译TA-Lib 源代码。

    所以解决方法是从源代码手动编译打包talib库为wheel文件,然后将其及其依赖项上传安装到Microsoft Azure Notebook,最后就可以使示例代码如图所示下面。

    这是我的详细步骤,我是在本地 Windows 机器的 WSL 中完成的。你可以尝试在 Linux 机器上做同样的事情

    1. 在 Python 3.6 中创建一个新目录并使用 virtualenv 初始化它

    2. 按照mrjbq7/ta-libREADME.md内容安装TA-LibC源代码作为TA-Lib Python包的依赖。需要先在Linux上安装gccmake

    3. mrjbq7/ta-lib的发布页面下载源代码,然后按照以下命令解压编译。

      $ 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成功后,talib目录下有一个名为TA_Lib-0.4.17-cp36-cp36m-linux_x86_64.whl的文件,如下图。

    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

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

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

    【讨论】:

      【解决方案2】:

      感谢您的广泛回答。经过一番来回,我设法编译了一些看起来类似于你的轮子文件的东西。我使用了 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 步只是第 2 步,并更新了 tar 文件。

      【讨论】:

      • 看起来它归结为 python pip 使用的版本。 pip 使用 2.7,pip3 使用 3.6。我可以使用两个点从第 3 步安装 numpy,当我询问 python 版本时,我会看到 3.6.9。但是不知怎么用python2.7来做轮子……
      猜你喜欢
      • 1970-01-01
      • 2018-06-08
      • 2023-03-30
      • 1970-01-01
      • 2020-12-01
      • 2016-11-17
      • 2020-12-11
      相关资源
      最近更新 更多