【问题标题】:How to import modules when modules have same folder names,当模块具有相同的文件夹名称时如何导入模块,
【发布时间】:2018-01-10 12:53:44
【问题描述】:

我遇到了一个问题,google.appenginegoogle.cloud python 模块位于名为 google 的不同目录下

它们的路径如下:

1st Path: C:\Users\MohammedT\Desktop\dsapp\sitepackages\dev\google_appengine

api_server.py
appcfg.py
backends_conversion.py
BUGS
bulkloader.py
bulkload_client.py
demos
dev_appserver.py
download_appstats.py
endpointscfg.py
gen_protorpc.py
google    --> Directory 1 where appengine module resides
lib
LICENSE
new_project_template
php
php_cli.py
README
RELEASE_NOTES
remote_api_shell.py
run_tests.py

2nd Path: C:\Users\MohammedT\Desktop\datastore\dsenv\Lib\site-packages

enum
enum34-1.1.6.dist-info
future
future-0.16.0.dist-info
futures-3.2.0.dist-info
gapic_google_cloud_datastore_v1-0.15.3-py2.7-nspkg.pth
gapic_google_cloud_datastore_v1-0.15.3.dist-info
gapic_google_cloud_error_reporting_v1beta1-0.15.3-py2.7-nspkg.pth
gapic_google_cloud_error_reporting_v1beta1-0.15.3.dist-info
gapic_google_cloud_logging_v2-0.91.3-py2.7-nspkg.pth
gapic_google_cloud_logging_v2-0.91.3.dist-info
google    ------------> Directory 2 where other other modules resides
googleapiclient
googleapis_common_protos-1.5.3-py2.7-nspkg.pth
googleapis_common_protos-1.5.3.dist-info
google_api_core-0.1.3-py3.6-nspkg.pth
google_api_core-0.1.3.dist-info
google_api_python_client-1.6.4.dist-info

我可以在不将它们移动到公共目录的情况下实现这一点吗?

我已将 python 路径设置为指向这两个目录。我目前可以从目录 2 导入,但无法从目录 1 导入

【问题讨论】:

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


【解决方案1】:

您可以从其路径加载每个模块。在 Python 2 中使用:

import imp

foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()

这个可爱的答案中的其他细节: How to import a module given the full path?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-29
    • 2011-06-23
    • 2020-04-04
    • 2020-01-26
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多