4
回答
python 项目开发中如何import其他包下面的模块
注册华为云得mate10,2.9折抢先购!>>>   

大家好,刚刚学习python,包引用一直不怎么懂,准备自己写测试项目:

遇到问题是不知道怎么import我项目目录下其他模块,如:

world目录下创建一个 World类

要在 instances.py中使用

from com.zyj.world import World

world =World()

》》》》 结果提示找不到World,所以麻烦各位教教俺怎么搞了,万分感谢

目录结构如下

python 安装目录子啊 E:\python\Python27\

项目目录 在E:\python\project\test\下


举报
super_man520
发帖于3年前 4回/3K+阅

以下是问题补充:

  • @super_man520 :上面的也是一种不错的解决问题的办法,都是不是我这个问题的解决吧,我是因为在每一层目录下缺少__init__.py文件,导致python不认可每次目录是一个包或者模块,提示报错,之前在site-packages目录下配置pth,正常启动了以后删除.pth文件发现还是能正常运行,所以eclipse应该自动添加了这个路径 (3年前)
共有4个答案 最后回答: 3年前
把你的项目目录添加入sys.path
import sys
import os

curpath=os.path.abspath('.')
libs_path="%s/%s" %(curpath,"libs")
#动态的添加库路径
sys.path.append(libs_path)

--- 共有 2 条评论 ---
职通网回复 @super_man520 : 把代码放到你需要执行的python文件就可以。 3年前 回复
super_man520动态添加应该是在运行后才生效吧,我现在在eclipse里边编辑时候,报错,这个也能处理吗? 3年前 回复

引用来自“jobet”的评论

把你的项目目录添加入sys.path
import sys
import os

curpath=os.path.abspath('.')
libs_path="%s/%s" %(curpath,"libs")
#动态的添加库路径
sys.path.append(libs_path)


还是提示错误,是不是我哪里搞错了呢

引用来自“jobet”的评论

把你的项目目录添加入sys.path
import sys
import os

curpath=os.path.abspath('.')
libs_path="%s/%s" %(curpath,"libs")
#动态的添加库路径
sys.path.append(libs_path)

引用来自“super_man520”的评论


还是提示错误,是不是我哪里搞错了呢

代码是这样的:

import sys,os,pprint
currpath = os.path.abspath(".")
libs_path = "%s\\%s" % (currpath,"libs")
sys.path.append(libs_path)
print libs_path
pprint.pprint(sys.path)
from com.zyj.common import instances
def startUp():
    instances.__dict__
    pass

if __name__ == '__main__' : startUp()

报错:

ImportError: No module named com.zyj.common


路径打印的是:

E:\python\src_project\game_server\com\zyj\libs
['E:\\python\\src_project\\game_server\\com\\zyj',
 'E:\\eclipse\\eclipse_4.3\\plugins\\org.python.pydev_4.1.0.201505270003\\pysrc',
 'E:\\python\\src_project\\game_server',
 'E:\\python\\Python27-new\\lib\\site-packages\\django-1.7.8-py2.7.egg',
 'E:\\python\\Python27-new\\DLLs',
 'E:\\python\\Python27-new\\lib',
 'E:\\python\\Python27-new\\lib\\lib-tk',
 'E:\\python\\Python27-new',
 'E:\\python\\Python27-new\\lib\\site-packages',
 'E:\\python\\Python27-new\\lib\\site-packages\\wx-3.0-msw',
 'C:\\windows\\system32\\python27.zip',
 'E:\\python\\Python27-new\\lib\\plat-win',
 'E:\\python\\src_project\\game_server\\com\\zyj\\libs

--- 共有 1 条评论 ---
职通网你的路径没有libs呀。根据你的路径调整一下。 3年前 回复
顶部