Python - 如何从根目录加载自定义类方法?

时间:2013-12-11 12:19:50

标签: python

如何从特定目录导入我的类(在我的情况下根目录我希望保留它)。

所以,我有以下目录映射,现在我需要从parsePresets文件加载类myglobal.py,该文件位于根目录:/var/tmp/mypython目录中。

但是,我想从我的新模块中的类/方法导入它:/var/tmp/mypython/media/test.py

from myglobal import parsePresets

但我得到了:

    from myglobal import parsePresets
ImportError: No module named myglobal

我在根目录和媒体目录中也有 init .py。

$ cd /var/tmp/mypython; tree
.
├── arduino
│   ├── arduino.diest.c
│   ├── arduino.gent.c
│   ├── arduino.lalouvier.c
│   ├── arduino.makenoise.c
│   ├── arduino.servo.c
│   ├── arduino.string.c
│   ├── arduino.tcpserver.c
│   ├── arduino.tcpserver.c~
│   ├── arduino.test.sh
├── bash
│   ├── all.sh
│   ├── alsa-info.sh
│   ├── asound.conf
│   ├── autoreboot.sh
│   ├── diskfix.sh
│   ├── kernelfix.sh
│   ├── update.sh
│   └── usbformat.sh
├── chrome.py
├── download.py
├── download.sh
├── gui.py
├── image
│   ├── a.png
│   ├── b.gif
│   ├── cross_new.png
│   ├── e150
│   │   ├── 1.png
│   │   ├── de.png
│   │   ├── en.png
│   │   ├── __init__.py
│   │   └── nl.png
│   ├── __init__.py
│   ├── logo.png
│   ├── menu.jpg
│   └── slider_btn.png
├── __init__.py
├── INSTALL
├── ip.py
├── loading.py
├── logout.py
├── media
│   ├── __init__.py
│   ├── test.py
├── menu.py
├── myglass.py
├── myglass.pyc
├── myglobal.py
├── myglobal.pyc
├── rightclick.py
├── runme.sh
├── server.py
├── server.pyc
├── src.nja
├── test
│   ├── Button.py
│   ├── json.py
│   ├── json.pyc
│   ├── keyboard.py
│   ├── loop.sh
│   ├── mytimer.py
│   ├── qtclick.py
│   ├── qtmouse.py
│   ├── qt.py
│   ├── qtwindows7.py
│   ├── shape.py
│   ├── skeleton.py
│   ├── slider.py
│   ├── testpreview.py
│   ├── test.py
│   ├── Text.py
│   ├── transparent.py
│   ├── transparentwindow.py
│   └── Vscale.py
├── test.py
├── unavailable.py
├── upload.sh
└── internet
    ├── backup
    ├── protocol.txt    
    └── server.py

2 个答案:

答案 0 :(得分:2)

您可以在脚本中添加sys.path.append(/var/tmp/mypython/media/)

修改

$ cat >> /var/tmp/mypython/stackoverflow.py <<\EOF
import sys
sys.path.append("/var/tmp/mypython/")
from myglobal import parsePresets
EOF
$ python /var/tmp/mypython/stackoverflow.py

或使用NINJA-IDE

Running: /var/tmp/mypython/media/stackoverflow.py (Wed Dec 11 13:37:25 2013)



Execution Successful!

答案 1 :(得分:1)

使用relative imports

from ..myglobal import parsePresets

额外的句点.会将您“拉出”您的层次结构中的某个级别。