[D]python路径import问题

wklken 2012-02-29 09:03:36
~/app
├── app1
│   └── b.py
└── m.py
|____ run.sh

在run.sh里面,调用了b.py
b.py必须要import m

如何实现?
不可以用sys.path.append(绝对路径)
试过
sys.path.append(os.path.abspath(".."))
不行....

哎,求助
---------------------------
Double行动:
原帖分数:40
加分:40
...全文
393 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
georgema 2012-03-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wklken 的回复:]

引用 2 楼 georgema 的回复:

你为什么不把app和app1目录设置成python路径?


不能设死,因为后续安装在不同机器上的不同目录可能
[/Quote]
这个理由根本不成立。照你这么说java之类的语言都不能设置java路径再import了。
angel_su 2012-03-09
  • 打赏
  • 举报
回复
不设死有的的好处,譬如单独调试1.py,当前工作路径就在app1,这时又得改写os.path.abspath("..")。而我上面的意思类似:
dir = os.path.dirname(__file__)
path = os.path.join(dir, '..')
sys.path.append(os.path.abspath(path))
这样你无论从哪个位置跑1.py都可以,不用再改代码
angel_su 2012-03-02
  • 打赏
  • 举报
回复
当下工作目录没把握确认在哪时,可以试试从__file__属性(即b.py文件名)去推敲...
wklken 2012-03-02
  • 打赏
  • 举报
回复
报异常,找不到import模块

已解决,比较蛋疼的做法:

sys.path.append(os.path.abspath("."))

楼上方法未实验.....


感觉要组织一个python项目咋那么痛苦呢......java的就不错...

Thx all!
稍晚结贴
georgema 2012-03-02
  • 打赏
  • 举报
回复
你为什么不把app和app1目录设置成python路径?
yangyi1214 2012-03-02
  • 打赏
  • 举报
回复
b.py中加sys.path.append(os.getcwd())
angel_su 2012-03-02
  • 打赏
  • 举报
回复
为啥不行报啥错?
wklken 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 georgema 的回复:]

你为什么不把app和app1目录设置成python路径?
[/Quote]

不能设死,因为后续安装在不同机器上的不同目录可能
noevil 2012-02-29
  • 打赏
  • 举报
回复
sys.path.append(os.path.split(os.getcwd())[0])

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧