【问题标题】:How to import module PyImgur Python如何导入模块 PyImgur Python
【发布时间】:2013-07-08 14:52:07
【问题描述】:

我是 python 新手,我已经将它安装在 C:\ 中,并且我刚开始使用 GAE 的 Hello World 应用程序,我下载了 PyImgur 并通过 cmd python setup.py install 安装了它,但我收到了一个错误 @987654323 @ 在 gae 日志中。那么如何在我的 main.py 脚本中导入它呢?

app.yaml

application: engineapp
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.app

libraries:
- name: webapp2
  version: "2.5.2"

main.py

import webapp2
import pyimgur

class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write('Hello world!')

app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)

这是 GAE 错误

INFO 2013-07-08 08:15:47,197 server.py:593] 默认值:“GET / HTTP/1.1”500 - INFO 2013-07-08 08:28:22,289 api_server.py:509] 应用所有待处理事务并保存数据存储 INFO 2013-07-08 08:28:22,289 api_server.py:512] 保存搜索索引 2013-07-08 08:28:22(进程以代码 0 退出)

2013-07-08 08:28:23 运行命令:“['C:\Python27\pythonw.exe', 'C:\Program Files (x86)\Google\google_appengine\dev_appserver.py', '- -skip_sdk_update_check=yes','--port=8080','--admin_port=8000',u'C:\fb-app\engineapp']" INFO 2013-07-08 08:28:29,868 devappserver2.py:528] 跳过 SDK 更新检查。 INFO 2013-07-08 08:28:29,982 api_server.py:138] 启动 API 服务器:http://localhost:59917 INFO 2013-07-08 08:28:29,989 dispatcher.py:164] 启动服务器“默认”运行于:http://localhost:8080 INFO 2013-07-08 08:28:29,993 admin_server.py:117] 在以下位置启动管理服务器:http://localhost:8000

ERROR    2013-07-08 15:28:33,897 wsgi.py:219] 

Traceback (most recent call last):

  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 196, in Handle

    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())

  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 255, in _LoadHandler

    handler = __import__(path[0])

  File "C:\fb-app\engineapp\main.py", line 18, in <module>

    import pyimgur

ImportError: No module named pyimgur

INFO     2013-07-08 08:28:33,907 server.py:593] default: "GET / HTTP/1.1" 500 -

【问题讨论】:

  • UPADTE 新版本 v0.4.2 已发布,这解决了 pyimgur 导入的问题,更新后我能够在我的 gae 应用程序中导入模块 pyimgur以及在 python cmd 中。 (感谢您的所有输入,我确实在我的应用程序目录中包含了模块文件,它已修复它!)

标签: python google-app-engine python-2.7


【解决方案1】:

对于 Google App Engine 服务器上的模块,除了 official third party libraries 中的模块,您必须将它们与您的应用程序代码一起上传。

对于本地dev_appserver,他们必须驻留在您的PYTHONPATH

解决这两个问题的安全方法是将所需模块放在应用程序目录中,因为 dev_appserver 扩展了 PYTHONPATH

【讨论】:

  • 我在我的sys变量路径文件中将PYTHONPATH设置为C:\Python27\python.exe,我可以通过cmd进入python。所以 python 没问题,现在按照建议,我确实在我运行 setup cmd 的位置复制了 c:\python\ 文件夹中名为 pyimgur 的目录,之后按照建议,我在我的应用程序文件夹 c:\app-test 中复制了相同的目录\ 文件夹,但我仍然得到错误。 :(
  • PYTHONPATH与能否通过cmd访问python.exe无关。那是PATH(据我所知,我没有使用 Windows 进行开发)。 PYTHONPATH 是 Python 查找您尝试导入的模块的目录列表。您能发布一下您当前的PYTHONPATH 是什么吗?
  • 它的 C:\Python27\Lib\site-packages 那里我有一个名为pyimgur-0.3.2-py2.7.egg的文件夹
  • 不管本地安装和.egg文件,你应该在应用程序目录中有pyimgur目录。如果你不这样做,当你部署到 GAE 时,你会遇到同样的问题。在与 app.yaml 相同的目录下创建一个目录,命名为“pyimgur”,其内容与here 相同。现在,如果为您的应用程序正确运行 dev_appserver 不起作用,我将无法为您提供帮助。 (您的 Python/GAE 配置错误或冲突,或者我不知道 GAE PYTHONPATH 的 Windows 特定问题)
【解决方案2】:

您需要在您的应用中包含 pyImgur 源代码。将模块包含在您的应用目录(您的 app.yaml 所在的目录)或其子目录之一中。

【讨论】:

  • 很抱歉,我该怎么做?我已经从 zip 文件中提取了 src,然后我在目录中以 python setup.py install 运行 cmd 之后,我确实在我的应用程序目录中复制了名为 pyimgur-0.3.2 的目录,其中有一些setup.py 文件中的文件和子文件夹然后重新启动应用程序 BHut 仍然出现错误。我是否必须在我的 app.yaml 文件或 main.py 文件中声明 pyImgur 的源才能导入模块。如何?你能举个例子把它从src中包含进来吗?
  • 我希望只需将 "pyimgur" directory 复制到与您的 app.yaml 相同的目录中即可。这是一个简单的 Python 模块。
  • 我什至也尝试过,我还将该特定文件夹中的内容/文件复制到了我的 app.yaml 所在的应用程序目录但我仍然收到错误..这就是为什么我很困惑?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 2016-07-08
  • 2015-04-02
  • 2018-11-08
相关资源
最近更新 更多