如何从特定目录导入我的类(在我的情况下根目录我希望保留它)。
所以,我有以下目录映射,现在我需要从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
答案 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)