Python 无法从类导入
我有下面的类和函数。当我试图通过它运行时,我得到:Python 无法从类导入,python,python-2.7,Python,Python 2.7,我有下面的类和函数。当我试图通过它运行时,我得到: ImportError:无法导入名称请求 这是我的密码: from tests.global_functions.util_helper import util_get_random_customer_individual from tests.global_functions.util_helper import util_get_random_customer_company from requests import Requests im
ImportError:无法导入名称请求
这是我的密码:
from tests.global_functions.util_helper import util_get_random_customer_individual
from tests.global_functions.util_helper import util_get_random_customer_company
from requests import Requests
import random
class Customer():
def __init__(self):
request = Requests()
customer = None
if request.request_type == 'individual':
customer = util_get_random_customer_individual()
elif request.request_type == 'company':
customer = util_get_random_customer_company()
else:
print 'What the hell should I do???? HELP!?!?!?!'
回溯如下:
Traceback (most recent call last):
File "C:/Users/e003048/QA/trunk/automation/selenium/src/webservices/add_customers/webservice_requests.py", line 2, in <module>
import webservices.system_environment.responses
File "C:\Users\e003048\QA\trunk\automation\selenium\src\webservices\system_environment\responses.py", line 2, in <module>
import connector
File "C:\Users\e003048\QA\trunk\automation\selenium\src\webservices\system_environment\connector.py", line 3, in <module>
import requests
File "C:\Users\e003048\QA\trunk\automation\selenium\src\webservices\system_environment\requests.py", line 3, in <module>
from customer import Customer
File "C:\Users\e003048\QA\trunk\automation\selenium\src\webservices\system_environment\customer.py", line 4, in <module>
from requests import Requests
ImportError: cannot import name Requests
回溯(最近一次呼叫最后一次):
文件“C:/Users/e003048/QA/trunk/automation/selenium/src/webservices/add_customers/webservice_requests.py”,第2行,在
导入webservices.system\u environment.responses
文件“C:\Users\e003048\QA\trunk\automation\selenium\src\webservices\system\u environment\responses.py”,第2行,在
导入连接器
文件“C:\Users\e003048\QA\trunk\automation\selenium\src\webservices\system\u environment\connector.py”,第3行,在
导入请求
文件“C:\Users\e003048\QA\trunk\automation\selenium\src\webservices\system\u environment\requests.py”,第3行,在
从客户导入客户
文件“C:\Users\e003048\QA\trunk\automation\selenium\src\webservices\system\u environment\customer.py”,第4行,在
从请求导入请求
ImportError:无法导入名称请求
不知道我在这里做错了什么,也不知道为什么会出现这个错误。我使用的是PyCharm,导入语句中没有任何错误。您有循环导入<代码>请求导入<代码>客户,以及<代码>客户导入<代码>请求 Python中实际上允许循环导入,但是如果您试图进行命名导入(即
从foo导入foo
而不是导入foo
),循环导入就不能很好地工作。Python正在尝试导入请求
,但要做到这一点,它需要导入客户
。因此,在导入请求
的过程中,它开始导入客户
。然后customer
说它想查看requests
中名为Request
的东西,但是requests
还没有加载完毕,所以名称还不存在
有几个可能的修复方法:
customer
模块中说requests.Request
,而不是Request
customer
的导入移到requests
类的定义之下同样,这是一种糟糕的风格,我不推荐它。我在这里提到它只是为了完整,但如果你这样做,你以后几乎肯定会后悔的。你有循环进口<代码>请求导入<代码>客户,以及<代码>客户导入<代码>请求 Python中实际上允许循环导入,但是如果您试图进行命名导入(即
从foo导入foo
而不是导入foo
),循环导入就不能很好地工作。Python正在尝试导入请求
,但要做到这一点,它需要导入客户
。因此,在导入请求
的过程中,它开始导入客户
。然后customer
说它想查看requests
中名为Request
的东西,但是requests
还没有加载完毕,所以名称还不存在
有几个可能的修复方法:
customer
模块中说requests.Request
,而不是Request
customer
的导入移到requests
类的定义之下同样,这是一种糟糕的风格,我不推荐它。我在这里提到它只是为了完整,但如果你这样做,你以后几乎肯定会后悔的。如果没有不同的pythonpath进行干扰,这可能是名称冲突,但也可能是循环导入问题。调用堆栈似乎支持这一点。您是否有自己的名为“requests”的包或模块?@SilasRay是的,我有一个带有
requests
类的requests
模块,这就是我试图导入的内容。我建议您尝试从request import*中导入,尽管我不确定是否建议这样做,您没有使用请求
库吗?在任何情况下,看起来您的请求
模块正在尝试导入客户
模块,客户
模块正在尝试导入请求
模块。这是一个循环输入<代码>请求
在请求
命名空间中还不存在,因为在客户
尝试加载模块之前,模块还没有完全加载。鉴于您对这批代码的其他问题,我认为您需要进行一次重大重构。看起来您基本上使用的是请求
类,就像一个美化的字典一样,同时将请求
上的方法或其子类填充到util\u helper
模块中。您的代码似乎存在基本的结构问题;用黑客补丁解决这个狭隘的问题并不能真正解决你的问题