代码之家  ›  专栏  ›  技术社区  ›  RoToR

烧瓶迁移python2到3导入错误:无法导入名称

  •  1
  • RoToR  · 技术社区  · 7 年前

    .
    ├── doc
    │   ├── apidoc.json
    │   ├── docAPI
    │   └── generation_doc
    ├── images
    │   ├── parking
    │   └── user
    ├── log
    │   └── file.log
    ├── README.md
    ├── requirements.txt
    ├── run_server.py
    ├── server
    │   ├── controllers
    │   ├── __init__.py
    │   ├── models
    │   ├── myServerUtils
    │   ├── __pycache__
    │   └── routes
    └── venv
        ├── bin
        ├── include
        ├── lib
        └── pip-selfcheck.json
    

    在python2下一切都很好。但我必须迁移到python3。 在将python-mysql的要求更改为pymysql并重构了导入的方式之后,我发现了一个错误。

    /home/myUser/Documents/myServer/backend/venv/bin/python /home/myUser/Documents/myServer/backend/run_server.py
    Traceback (most recent call last):
      File "/home/myUser/Documents/myServer/backend/run_server.py", line 4, in <module>
        from server import app
      File "/home/myUser/Documents/myServer/backend/server/__init__.py", line 26, in <module>
        from .controllers import *
      File "/home/myUser/Documents/myServer/backend/server/controllers/__init__.py", line 1, in <module>
        from .user import *
      File "/home/myUser/Documents/myServer/backend/server/controllers/user.py", line 3, in <module>
        from .. import UserTable
    ImportError: cannot import name 'UserTable'
    
    Process finished with exit code 1
    

    文件中的导入 controllers/user.py

    from .. import db
    from .. import return_error
    from .. import UserTable
    from .. import ErrorType
    from .. import Logger
    from .. import ParkingTable
    from .. import ParkingBookedTable
    from .. import reset_password as mail_reset_password
    from .. import app
    from flask import request, jsonify, send_file
    import exrex, hashlib
    from validate_email import validate_email
    from datetime import datetime
    import uuid
    import os
    import time
    

    这是从美国进口的 models/users.py UserTable

    from .. import db
    from .. import ErrorType
    from validate_email import validate_email
    import uuid
    import time
    

    1 回复  |  直到 7 年前
        1
  •  0
  •   dmitrybelyakov    7 年前

    我没有一个明确的答案,但我会首先检查是否有任何循环进口发生。