在Google Cloud ML Engine中使用自定义依赖项

时间:2017-07-21 09:33:05

标签: python google-cloud-platform google-cloud-ml google-cloud-ml-engine

我正在尝试使用未在PyPI中列出的python package和Google Cloud ML Engine。此包具有自身依赖关系,即使在PyPI中列出,也不会默认安装在ML引擎环境中,即Cython包。

查看documentation目前还不清楚如何继续这种情况,我尝试将此包打包在.tar.gz文件中并将其传递给--packages参数,但是我收到以下错误:

File "<string>", line 1, in <module> IOError: [Errno 2] No such file or directory: '/tmp/pip-jnm3Ml-build/setup.py'

在我尝试使用setup.py文件并打包我的代码后,但是google cloud ml引擎无法在dependency_links

中找到该软件包

这是我当前的setup.py

from setuptools import find_packages, setup

required_packages = ['cython', 'numpy', 'tensorflow', 'scipy', 'cython']
dependency_links = ['git+https://github.com/lucasb-eyer/pydensecrf.git']

setup(name='trainer',
      version='0.1',
      packages=['trainer'],
      install_requires=required_packages,
      dependency_links=dependency_links,
      include_package_data=True,
      description='description')

我希望避免通过反复试验来做到这一点,因为即使他们立即失败,将工作发送到云也需要花钱。

提前致谢。

1 个答案:

答案 0 :(得分:2)

为此,您需要将Cython添加到setup.py中所需包的列表中。可以找到说明here

以下示例setup.py,它将作为--package-path传递到gcloud的目录的父目录。

from setuptools import find_packages
from setuptools import setup

REQUIRED_PACKAGES = ['Cython>=0.26']

setup(
    name='trainer',
    version='0.1',
    install_requires=REQUIRED_PACKAGES,
    packages=find_packages(),
    include_package_data=True,
    description='My trainer application package.'
)