在 Python 中导入时未解析的引用

亚军保罗

我已经使用 Pip 从 GitHub 安装了一个 Python 包。它将它安装到我的包内的 src 文件夹中。我的文件夹结构现在看起来像这样:

TestApiClient/src/sdk-config/config_a

我需要导入ConfigurationApiManager.

我试过这个,但它不起作用:

from src.config_a.configuration_api import ConfigurationApi
from src.config_a.manager import Manager

这个应该怎么导入?

ConfigurationApi setup.py

#!/usr/bin/env python
import os
import re
import sys

from setuptools import setup, find_packages

# Config sdk python version check
_valid  =  sys.version_info[:2] == (2, 7) or sys.version_info >= (3,4)
if not _valid:
    sys.exit("Sorry, SDK only supports versions 2.7, 3.4, 3.5, 3.6, 3.7 of python.")


ROOT = os.path.dirname(__file__)
VERSION_RE = re.compile(r'''__version__ = ['"]([a-z0-9.]+)['"]''')


def get_version():
    init = open(os.path.join(ROOT, 'config', '__init__.py')).read()
    return VERSION_RE.search(init).group(1)


setup(
    name='sdk-config',
    version=get_version(),
    description='Config SDK for Python',
    long_description=open('README.md').read(),
    author='ME',
    url='https://github.my_company.com/my_org/repo_name',
    scripts=[],
    packages=find_packages(exclude=['tests*']),
    include_package_data=True,
    license="Apache License 2.0",
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'Intended Audience :: Developers',
        'Natural Language :: English',
        'License :: OSI Approved :: Apache Software License',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
    ],
)

附加信息

我卸载并重新安装,但这次我没有在可编辑模式下安装。

如果我这样做,pip list我可以看到它sdk-config已安装。我试图导入它,sdk_config = __import__("sdk-config")认为我可能会做一些类似的事情:

from sdk_config.config_a.configuration_api import ConfigurationApi
from sdk_config.config_a.manager import Manager

然而,这导致了这个错误:

Traceback (most recent call last):
  File "/Users/me/PycharmProjects/TestConfigApiClient/TestApiClient.py", line 1, in <module>
    sdk_config = __import__("sdk-config")
ModuleNotFoundError: No module named 'sdk-config'
亚军保罗

问题似乎是我全局安装了该软件包,但我在没有该软件包的虚拟环境中工作。当我将它安装在虚拟环境中时,它工作正常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章