当模块具有相同的文件夹名称时如何导入模块,
How to import modules when modules have same folder names,
我遇到的问题是 google.appengine
和 google.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 2 中使用:
import imp
foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()
这个可爱的答案中的其他细节:
How to import a module given the full path?
我遇到的问题是 google.appengine
和 google.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 2 中使用:
import imp
foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()
这个可爱的答案中的其他细节: How to import a module given the full path?