全部
常见问题
产品动态
精选推荐

Python怎么导入自己写的模块:无法在 Python中导入我自己的模块

管理 管理 编辑 删除

我很难理解模块导入如何在 Python 中工作(我从来没有在任何其他语言之前做过)。

假设我有:

myapp/__init__.py
myapp/myapp/myapp.py
myapp/myapp/SomeObject.py
myapp/tests/TestCase.py

现在我试图得到这样的东西:

myapp.py
===================
from myapp import SomeObject
# stuff ...
TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject

但是,我肯定做错了什么,因为 Python 看不到myapp是一个模块:

ImportError: No module named myapp


在您的特定情况下,它看起来像您正在尝试从 myapp.py 和 TestCase.py 脚本导入SomeObject。从 myapp.py,执行

import SomeObject

因为它在同一个文件夹中。对于 TestCase.py,请执行

from ..myapp import SomeObject

然而,这将工作只有当你从包中导入 TestCase。如果你想直接运行python TestCase.py,你将不得不弄乱你的路径。这可以在 Python 中完成:

import sys
sys.path.append("..")
from myapp import SomeObject

虽然这通常是不推荐的。

一般来说,如果你想让其他人使用你的 Python 包,你应该使用distutils来创建一个安装脚本。这样,任何人都可以使用像python setup.py install这样的命令轻松地安装你的包,它将在他们的机器上随处可见。如果你认真对待这个包,你甚至可以将它添加到 Python 包索引PyPI中。


函数import将文件查找到您的 PYTHONPATH env.变量和您的本地目录中。因此,您可以将所有文件放在同一目录中,也可以将路径键入导出到终端:

export PYTHONPATH="$PYTHONPATH:/path_to_myapp/myapp/myapp/"


导出路径是一个好方法。另一种方法是将.pth 添加到您的 site-packages 位置。在我的 mac 上,我的 python 将 site-packages 保存在下面显示的 / Library / Python 中

/Library/Python/2.7/site-packages

我在 / Library / Python / 2.7 / site-packages / awesome.pth 创建了一个名为 awesome.pth 的文件,并在该文件中放置以下引用我的真棒模块的路径

/opt/awesome/custom_python_modules


你可以试试

from myapp.myapp import SomeObject

因为您的项目名称与 myapp.py 相同,这使它首先搜索项目文档


请登录后查看

用户19970108018 最后编辑于2023-10-23 17:52:10

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
打赏
已打赏¥{{reward_price}}
948
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服