zoukankan      html  css  js  c++  java
  • python:Attempted relative import in non-package

    problem:Attempted relative import in non-package

    所谓相对路径其实就是相对于当前module的路径,但如果直接执行脚本,这个module的name就是“__main__”, 而不是module原来的name, 这样相对路径也就不是原来的相对路径了,导入就会失败,出现错误“ValueError: Attempted relative import in non-package”

    solve:

    方法1:把src目录加入到sys.path里去

    方法2:把整个工程myproject写成package放进site-packages
    然后这样引用
    from myproject.XXX.YYY import XXX

    方法3:使用python -m 执行

    例如myproject.mypackage.module1

    如果你直接執行

    python myproject/mypackage/module1.py

    因为是直接执行的,对于module1.py不知道相对路径是什么,可采用

    python -m myproject.mypackage.module1执行。

    相当于

    import myproject

    import mypackage

    import module1

    即:import myproject.mypackage.module1这种形式的绝对引用

    并且会设置 __package__ = 'myproject.mypackage'

  • 相关阅读:
    NET网络配置
    NTP时间同步器
    NFS配置linux
    DNS配置域名解析
    ftp配置windows
    samba配置与windows
    NTP服务和DNS服务
    NFS服务和DHCP服务scp
    SAMBA服务和FTP服务
    find用法
  • 原文地址:https://www.cnblogs.com/DjangoBlog/p/3534703.html
Copyright © 2011-2022 走看看