如何使用 virtualenv 将 Python 函数上传到 IBM 云

How to upload Python function with virtualenv to IBM cloud

我正在尝试向 IBM Cloud 添加 python 功能。

我使用 scrapy 库和请求,因此按照 docs 我需要创建一个包含 __main__.pyhelpers.py 文件和 virtualenv.zip 文件.

我用

做到了
zip -r test.zip __main__.py helper.py virtualenv

并创建了 zip 文件,但问题是文件太大,我无法将其上传到 IBM。我问了 .

那两个.py文件(__main__.py helper.py)很小,所以问题出在virtualenv。我需要压缩它或做一些事情来减小它的大小。

我用以下方法创建了它:

virtualenv virtualenv

它安装了默认依赖项。我用 pip 安装了两个额外的库,因此:

pip install requests==2.18.4
pip install Scrapy==1.5.0

我需要那两个。

因此 virtualenv 创建的 zip 文件太大。

我知道这是问题所在,因为如果我创建一个没有 virtualenv.zip 文件,它可以毫无问题地上传。

因此有什么方法可以减小大小或解决我的问题并能够将其上传到 IBM?

我假设您的文件大小仍低于实际的 48MB 限制,对吗?

如果是这样,我们仍在努力解决这个问题,以便可以再次上传小于 48MB 的文件 - 甚至是 zip 文件,正如我在此处给出的解释:

我会的。修复后通知您。

除此之外,您已尝试将依赖项上传到 Dockerhub,仅将实际操作代码上传到 IBM Cloud Functions,如此处所述: http://jamesthom.as/blog/2017/08/04/large-applications-on-openwhisk/