如何在Google Cloud Shell上安装库python-docx / docx?

问题描述 投票:3回答:1

我在我的PC上使用python-docx和docx,但是当我将项目克隆到Google Cloud时,出现了问题。 docx和python-docx都安装在那里:

igorsavinkin555@cloudshell:~/corrections-msword (coral-heuristic-5610)$ pip install docx --user
Requirement already satisfied: docx in /home/igorsavinkin555/.local/lib/python2.7/site-packages (0.2.4)
Requirement already satisfied: lxml in /home/igorsavinkin555/.local/lib/python2.7/site-packages (from docx) (4.2.4)
Requirement already satisfied: Pillow>=2.0 in /home/igorsavinkin555/.local/lib/python2.7/site-packages (from docx) (5.2.0)
igorsavinkin555@cloudshell:~/corrections-msword (coral-heuristic-215610)$ pip install python-docx --user
Requirement already satisfied: python-docx in /home/igorsavinkin555/.local/lib/python2.7/site-packages (0.8.7)
Requirement already satisfied: lxml>=2.3.2 in /home/igorsavinkin555/.local/lib/python2.7/site-packages (from python-docx) (4.2.4)
igorsavinkin555@cloudshell:~/corrections-msword (coral-heuristic-215610)$

docx.Document的问题:

igorsavinkin555@cloudshell:~/corrections-msword (coral-heuristic-215610)$ dev_appserver.py $PWD
...
INFO     2018-09-07 14:31:48,503 api_server.py:275] Starting API server at: http://0.0.0.0:41739
INFO     2018-09-07 14:31:48,518 dispatcher.py:270] Starting module "default" running at: http://0.0.0.0:8080
INFO     2018-09-07 14:31:48,519 admin_server.py:152] Starting admin server at: http://0.0.0.0:8000
INFO     2018-09-07 14:31:50,533 instance.py:294] Instance PID: 727
ERROR    2018-09-07 14:32:00,844 wsgi.py:263]
Traceback (most recent call last):
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/home/igorsavinkin555/corrections-msword/main.py", line 2, in <module>
    from docx.document import Document
ImportError: No module named docx.document  

更新

The installing of those 3-d party libraries into project lib文件夹已经受益,现在这些包在project/lib文件夹中。然而,现在lxml库中的错误:

  File "/home/igorsavinkin555/corrections-msword/main.py", line 2, in <module>
    from docx.document import Document
  File "/home/igorsavinkin555/corrections-msword/lib/docx/__init__.py", line 3, in <module>
    from docx.api import Document  # noqa
  File "/home/igorsavinkin555/corrections-msword/lib/docx/api.py", line 14, in <module>
    from docx.package import Package
  File "/home/igorsavinkin555/corrections-msword/lib/docx/package.py", line 11, in <module>
    from docx.opc.package import OpcPackage
  File "/home/igorsavinkin555/corrections-msword/lib/docx/opc/package.py", line 12, in <module>
    from .part import PartFactory
  File "/home/igorsavinkin555/corrections-msword/lib/docx/opc/part.py", line 12, in <module>
    from .oxml import serialize_part_xml
  File "/home/igorsavinkin555/corrections-msword/lib/docx/opc/oxml.py", line 12, in <module>
    from lxml import etree
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py
", line 1095, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named lxml.etree

顺便说一句,这是一个正确的方式,因为:

您可以在Coogle Cloud Shell虚拟机实例上安装其他软件包,但在实例终止后安装将不会保留,除非您在$ HOME目录(source)中安装该软件。

python google-app-engine google-cloud-platform docx python-docx
1个回答
0
投票

使用Google Cloud Shell只能使用install persistent data in the $HOME directory。达到非活动时间限制为60分钟,VM实例将被终止。之后访问它,它将从新VM实例上的映像进行配置。

但是,Google Cloud Shell有5GB persistent dis storage located in $HOME directory,它不会过期,但可能会被回收。用户在回收过程之前收到电子邮

© www.soinside.com 2019 - 2024. All rights reserved.