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

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 相同,这使它首先搜索项目文档


请登录后查看

A 各大电商平台数据接口-万邦Andy 最后编辑于2023-10-23 17:52:10

快捷回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
回复从新到旧

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
{{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
662
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

A 各大电商平台数据接口-万邦Andy 作者
提供淘宝天猫京东拼多多抖音微店1688阿里巴巴亚马逊速卖通lazada虾皮等全球知名接口采集技术

回答

11

发布

375

经验

8570

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

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

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

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 开源下载 CRMEB官方论坛 帮助文档
返回顶部 返回顶部
CRMEB客服