thư mục My trong công cụ ứng dụng là như thế này:Không mô-đun tên markdown App Engine
project
app.yaml
main.py
lib
markdown
markdown_files
Markdown đang được nhập khẩu main.py
bởi from lib.markdown import markdown
. Tại thời điểm này máy chủ dev đang bắt đầu cung cấp cho tôi theo dõi ngăn xếp sau đây. Tôi tự hỏi điều gì đang xảy ra ở đây! Tôi có một số init .py in lib.
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 2769, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 2654, in _Dispatch
base_env_dict=env_dict)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 683, in Dispatch
base_env_dict=base_env_dict)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 1718, in Dispatch
self._module_dict)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 1622, in ExecuteCGI
reset_modules = exec_script(config, handler_path, cgi_path, hook)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 1310, in ExecuteOrImportScript
exec module_code in script_module.__dict__
File "/Users/nomadali/jeeqs/git/src/jeeqs.py", line 26, in <module>
from lib.markdown import markdown
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1845, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1717, in FindAndLoadModule
description)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1660, in LoadModuleRestricted
description)
File "/Users/nomadali/jeeqs/git/src/lib/markdown/__init__.py", line 161, in <module>
import preprocessors
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1845, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1717, in FindAndLoadModule
description)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1660, in LoadModuleRestricted
description)
File "/Users/nomadali/jeeqs/git/src/markdown/preprocessors.py", line 11, in <module>
ImportError: No module named markdown
INFO 2012-02-20 19:53:02,506 dev_appserver.py:2884] "GET /favicon.ico HTTP/1.0" 500 -
Update1
Tôi tin rằng câu hỏi này là một dupe của Import Python module with PyImport_ImportModuleEx for a gedit plugin
Câu trả lời:
Nếu bạn muốn sử dụng markdown mà không sửa đổi nó sau đó bạn sẽ phải đặt nó ở đâu đó nơi thư viện Python mong đợi nó, chẳng hạn như trong gói site /. Nếu không, bạn sẽ phải sửa đổi nó để sử dụng nhập khẩu tương đối thay vì nhập khẩu tuyệt đối.
Cập nhật 2 tôi giải quyết vấn đề này bằng cách sửa đổi sys.path của tôi trong công cụ ứng dụng:
sys.path.append (os.path.join (os.path.dirname (tập tin), 'lib'))
Nhờ Murat để được giúp đỡ,
Trừ khi bạn có nhiều mô-đun của bên thứ ba, sẽ đơn giản hơn là chỉ cần xóa thư mục lib và đặt thư mục đánh dấu vào thư mục gốc của dự án của bạn. Sau đó, bạn không cần phải chỉnh sửa đường dẫn của bạn cả. –
Tôi thực sự có rất nhiều thư viện. – Ali
Bạn nên thêm câu trả lời làm câu trả lời cho câu hỏi của mình và đánh dấu câu trả lời là câu trả lời đúng. Cám ơn. – amirouche