相关疑难解决方法(0)

如何在Python中进行相对导入?

想象一下这个目录结构:

app/
   __init__.py
   sub1/
      __init__.py
      mod1.py
   sub2/
      __init__.py
      mod2.py
Run Code Online (Sandbox Code Playgroud)

我正在编码mod1,我需要从中导入一些东西mod2.我该怎么办?

我尝试了from ..sub2 import mod2但是我得到了"尝试非包装中的相对导入".

我google了一下,但发现只有" sys.path操纵"黑客.有没有干净的方式?


编辑:我__init__.py的所有人目前都是空的

EDIT2:我想这样做,因为SUB2包含了为子包(共享类sub1,subX等等).

Edit3:我正在寻找的行为与PEP 366中描述的相同(感谢John B)

python python-module python-import

508
推荐指数
11
解决办法
31万
查看次数

Python导入相对路径

我有一个项目,我想在其他目录中使用一些python类.

结构示例:

/dir
 +../subdirA
 +../subdirB
 +../mydir
Run Code Online (Sandbox Code Playgroud)

绝对路径不同,因为该项目在不同的机器上运行.

执行位于/ mydir中的MySampleClass的 python文件时,如何导入位于/ subdirA中的/ dirOtherClassA中的OtherClassRoot

我尝试过这样的事情:

from . import MySampleClass as msc
Run Code Online (Sandbox Code Playgroud)

要么

from ../ import MySampleClass as msc
Run Code Online (Sandbox Code Playgroud)

但这总是失败或给我错误消息,如非包装中尝试相对导入

那么,什么是相对导入python文件的正确方法?

任何输入都非常感谢:)

python import path relative-path

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

从另一个目录调用 python setup.py install

我有以下树状:

- root_folder <--- I'm here
    - folder
        - setup.py
        - myModule
Run Code Online (Sandbox Code Playgroud)

当我python setup.py install从运行时folder,myModule 已正确安装,我可以做到import myModule

Howerver,当我运行python folder/setup.py installroot_folderimport myModule失败了,我要打电话import folder.myModule

如何setup.py从另一个文件夹调用脚本但将根文件夹保留为包含该setup.py文件的文件夹?

python setup.py

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