相关疑难解决方法(0)

如何在python中打破导入循环

我有一个情况,有两个相关的大型python类,因此我把它们放在单独的文件中.让我们说课程是Cobra和Rat.

现在需要从Cobra的方法调用Rat的方法,反之亦然.为此,我需要在Cobra.py中输入Rat.py和Rat中的Cobra

这会创建一个导入循环并产生错误.不能在眼镜蛇内部进口眼镜蛇.

怎么解决这个?

Cobra.py:

import Rat
class Cobra():
    def check_prey(self, rat ):
        # Some logic 
        rat.foo()
Run Code Online (Sandbox Code Playgroud)

Rat.py:

import Cobra
class Rat():
    def check_predator(self, snake ):
        # some_logic ..
        snake.foo()
Run Code Online (Sandbox Code Playgroud)

python

23
推荐指数
1
解决办法
3万
查看次数

如何修复 AttributeError:部分初始化的模块?

我正在尝试运行我的脚本,但不断收到此错误:

File ".\checkmypass.py", line 1, in <module>
  import requests 
line 3, in <module>
  response = requests.get(url) 
AttributeError: partially initialized module 'requests' has no attribute 'get' (most likely due to a circular import)
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

python python-3.x

23
推荐指数
2
解决办法
6万
查看次数

导入错误:无法从部分初始化的模块“...”导入名称“...”(很可能是由于循环导入)

我正在将应用程序从 Django 1.11.25 (Python 2.6) 升级到 Django 3.1.3 (Python 3.8.5),当我运行时manage.py makemigrations,我收到此消息:

  File "/home/eduardo/projdevs/upgrade-intra/corporate/models/section.py", line 9, in <module>
    from authentication.models import get_sentinel**

ImportError: cannot import name 'get_sentinel' from partially initialized module 'authentication.models' (most likely due to a circular import) (/home/eduardo/projdevs/upgrade-intra/authentication/models.py)**
Run Code Online (Sandbox Code Playgroud)

我的模型是:

身份验证/models.py

from django.conf import settings
from django.contrib.auth.models import AbstractUser, UserManager
from django.db import models
from django.db.models.signals import post_save
from django.utils import timezone

from corporate.constants import GROUP_SUPPORT
from corporate.models import Phone, Room, Section
from library.exceptions import ErrorMessage
from library.model …
Run Code Online (Sandbox Code Playgroud)

python django

19
推荐指数
5
解决办法
4万
查看次数

在 PyCharm 中使用 matplotlib 时出错:没有属性 'FigureCanvas'

我有这个代码:

import matplotlib.pyplot as p1lt

#define data
x = [1, 2, 3, 4, 5, 6]
y = [3, 7, 14, 19, 15, 11]

#create line plot
p1lt.plot(x, y)

#show line plot

p1lt.show()
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

Matplotlib support failed 
Traceback (most recent call last): 
  File "C:\Users\G\AppData\Roaming\JetBrains\IdeaIC2022.2\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 25, in do_import
    succeeded = activate_func() 
  File "C:\Users\G\AppData\Roaming\JetBrains\IdeaIC2022.2\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_code_executor.py", line 29, in <lambda>
    "matplotlib": lambda: activate_matplotlib(self.enableGui), 
  File "C:\Users\G\AppData\Roaming\JetBrains\IdeaIC2022.2\plugins\python-ce\helpers\pydev\pydev_ipython\matplotlibtools.py", line 110, in activate_matplotlib
    gui, backend = find_gui_and_backend() 
  File "C:\Users\G\AppData\Roaming\JetBrains\IdeaIC2022.2\plugins\python-ce\helpers\pydev\pydev_ipython\matplotlibtools.py", line 47, in find_gui_and_backend
    backend = matplotlib.rcParams['backend'] 
  File "D:\books\programming\python17\lib\site-packages\matplotlib\__init__.py", …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib

17
推荐指数
1
解决办法
3万
查看次数

无法导入requests.packages.urllib3.util'重试'

我在Windows 8上使用Python 2.7 64位.我安装了Requests 2.3版.我试图运行此import语句作为在我的代码中引入重试次数的一部分:

from requests.packages.urllib3.util import Retry
Run Code Online (Sandbox Code Playgroud)

我也安装了urllib3(我刚刚通过Pip安装了它).我收到错误消息:

Traceback (most recent call last):
  File "C:\Python27\counter.py", line 3, in <module>
    from requests.packages.urllib3.util import Retry
ImportError: cannot import name Retry
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么会这样?有没有其他依赖我不知道成功运行这行代码?

谢谢

python urllib3 python-requests

12
推荐指数
2
解决办法
1万
查看次数

Python导入paramiko错误"无法导入名称util"

我已经安装了paramiko模块.但是,当我尝试导入该模块时.我收到以下错误.

import paramiko
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-42-e77d47aa6e4a> in <module>()
----> 1 import paramiko

C:\Anaconda\lib\site-packages\paramiko\__init__.py in <module>()
     28 
     29 
---> 30 from paramiko.transport import SecurityOptions, Transport
     31 from paramiko.client import SSHClient, MissingHostKeyPolicy, AutoAddPolicy, RejectPolicy, WarningPolicy
     32 from paramiko.auth_handler import AuthHandler

C:\Anaconda\lib\site-packages\paramiko\transport.py in <module>()
     30 
     31 import paramiko
---> 32 from paramiko import util
     33 from paramiko.auth_handler import AuthHandler
     34 from paramiko.ssh_gss import GSSAuth

ImportError: cannot import name util
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

python paramiko importerror

10
推荐指数
1
解决办法
6698
查看次数

Python无法导入名称<class>

试图解决导入错误的大部分时间我一直在摔跤.

这是一个常见问题,但之前的问题没有完全解决我的问题.

我正在使用PyDev(一个Eclipse插件)和库Kivy(一个Python库)

我有一个像这样设置的文件结构:

<code>
    __init__.py
    main.py
    engine.py
    main_menu_widget.py
Run Code Online (Sandbox Code Playgroud)

"代码"保存在eclipse文件夹"MyProject"中,但它不是包,所以我没有包含它.

文件看起来像这样:

main.py

# main.py
from code.engine import Engine

class MotionApp(App):
    # Ommited
Run Code Online (Sandbox Code Playgroud)

engine.py

# engine.py
from code.main_menu_widget import MainMenuWidget

class Engine():
    # Ommited
Run Code Online (Sandbox Code Playgroud)

main_menu_widget.py

# main_menu_widget.py
from code.engine import Engine

class MainMenuWidget(Screen):
    pass
Run Code Online (Sandbox Code Playgroud)

我收到的错误详细信息是:

 Traceback (most recent call last):
   File "C:\MyProject\code\main.py", line 8, in <module>
     from code.engine import Engine
   File "C:\MyProject\code\engine.py", line 6, in <module>
     from code.main_menu_widget import MainMenuWidget
   File "C:\MyProject\code\main_menu_widget.py", line 3, in <module>
     from code.engine import Engine
Run Code Online (Sandbox Code Playgroud)

知道我在这里做错了吗?我刚刚重命名了我的整个文件夹结构,因为我搞砸了这个模块结构这么糟糕,但我觉得我接近它应该看起来......

python import module kivy

9
推荐指数
2
解决办法
5万
查看次数

builtins.ImportError:无法导入名称“空”

在处理 Python 并行编程一书中的示例时,我在使用多处理队列的代码中遇到了以下错误:

    File "C:\pyDev\multiproc\queue-test.py", line 4, in <module>
      queue = multiprocessing.Queue()
    File "C:\Anaconda3\Lib\multiprocessing\context.py", line 100, in Queue
      from .queues import Queue
    File "C:\Anaconda3\Lib\multiprocessing\queues.py", line 20, in <module>
      from queue import Empty, Full

builtins.ImportError: cannot import name 'Empty'
Run Code Online (Sandbox Code Playgroud)

经过一些实验,我确定生成此错误所需的只是以下代码(这是上面错误消息中提到的整个 queue-test.py 文件)。

import multiprocessing

if __name__ == "__main__":
    queue = multiprocessing.Queue()
Run Code Online (Sandbox Code Playgroud)

我在一台装有 Anaconda 4.1.0 的机器上运行 Python 3.5.1 和 Windows 7。我已经将上面的代码和书中的示例移植到另一台装有 Python 2.7.11 和 Anaconda 2.5.0、Windows 10 和它在那台机器上工作正常。

考虑到我的 Python 安装可能存在损坏的文件或其他问题,我尝试重新安装 Anaconda,但没有帮助。我执行了谷歌搜索,并没有发现这个特定的错误。其他 stackoverflow 帖子,例如在此处找到的帖子:ImportError: Cannot import name X似乎无关紧要,因为这涉及 Python 标准库的一部分,而不是我自己编写的代码和类。

import multiprocessing

7
推荐指数
1
解决办法
2170
查看次数

python:无法导入名称JIRA

我已经完成了 pip install jira

但是当我运行以下命令时,它会导致ImportError失败:无法导入名称JIRA

import re
from jira import JIRA

jira = JIRA('https://issues.net')
# all values are samples and won't work in your code!
key_cert_data = None
key_cert_file = "cert/jiraprivatekey.pub"
with open(key_cert, 'r') as key_cert_file:
    key_cert_data = key_cert_file.read()
Run Code Online (Sandbox Code Playgroud)

python jira python-2.7 python-3.x python-jira

6
推荐指数
1
解决办法
4445
查看次数

无法在同一目录 Visual Studio Code 中找到/导入 .py 文件

我查遍了互联网并花了几个小时试图解决这个问题。这可能是一件非常简单的事情,所以请放宽我的要求。这是我第一次使用 Visual Studio Code。我已经尝试过以下链接中提供的解决方案:

  1. VS Code - pylinter 找不到模块
  2. python 模块的 vscode 导入错误
  3. 无法让 VSCode/Python 调试器找到我的项目模块
  4. https://code.visualstudio.com/docs/python/environments

我的文件夹结构如下所示:

我正在尝试运行 urls.py 文件,该文件尝试使用 - 导入视图文件

from . import views
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

回溯(最近一次调用最后一次):文件“c:/Users/abc/projects/telusko/calc/urls.py”,第 7 行,来自 . 导入视图导入错误:无法导入名称“视图”

我已经尝试了所有可能的组合,目前我的 launch.json 文件如下所示:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }],
    "env": {"PYTHONPATH": "c:/Users/abc/projects/telusko/"}, …
Run Code Online (Sandbox Code Playgroud)

python django visual-studio python-3.x visual-studio-code

5
推荐指数
1
解决办法
8621
查看次数

无法从部分初始化的模块“models”导入名称“db”(很可能是由于循环导入)

我可以使用以下命令运行烧瓶测试python -m unittest discover -p testing.py,但是当我尝试运行时,python app.py runserver它会显示以下错误消息:

Traceback (most recent call last):
  File "app.py", line 10, in <module>
    from models import db
  File "/home/paula/projects/envioclicktest/restaurant_flask/models.py", line 1, in <module>
    from app import app as app
  File "/home/paula/projects/envioclicktest/restaurant_flask/app.py", line 10, in <module>
    from models import db
ImportError: cannot import name 'db' from partially initialized module 'models'
(most likely due to a circular import) (/home/paula/projects/envioclicktest/restaurant_flask/models.py)
Run Code Online (Sandbox Code Playgroud)

我的项目结构如下:

-restaurant_flask
    |-app.py
    |-models.py
    |-testing.py
Run Code Online (Sandbox Code Playgroud)

这是我的文件的内容以及我认为在每个文件中造成麻烦的行

应用程序.py

from flask import Flask
from flask_script …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy python-unittest

3
推荐指数
1
解决办法
2万
查看次数

无法导入类

这是我正在制作的游戏.不过我自己也看不到问题.

这是错误和两个.py文件:

C:\Users\Rickard\My Programs\Python\slutarbete\New try>main.py
Traceback (most recent call last):
  File "C:\Users\Rickard\My Programs\Python\slutarbete\New try\main.py", line 6,
 in <module>
    from rabbits import Rabbit
  File "C:\Users\Rickard\My Programs\Python\slutarbete\New try\rabbits.py", line
 3, in <module>
    import main
  File "C:\Users\Rickard\My Programs\Python\slutarbete\New try\main.py", line 6,
 in <module>
    from rabbits import Rabbit
ImportError: cannot import name Rabbit
Run Code Online (Sandbox Code Playgroud)

main.py

# -*- coding: utf-8 -*-

import pygame, sys, random, math
from rabbits import Rabbit
from pigs import Pig
from boars import Boar
from pygame.locals import *
from threading import Timer …
Run Code Online (Sandbox Code Playgroud)

python pygame

1
推荐指数
2
解决办法
8664
查看次数