首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从python的bin文件夹中的脚本导入包/模块

如何从python的bin文件夹中的脚本导入包/模块
EN

Stack Overflow用户
提问于 2012-07-23 20:40:28
回答 2查看 9K关注 0票数 34

在组织python项目时,这种结构似乎是一种标准的方式:

代码语言:javascript
复制
myproject\
    bin\
        myscript
    mypackage\
        __init__.py
        core.py
    tests\
        __init__.py
        mypackage_tests.py
setup.py

我的问题是,如何导入我的core.py以便在myscript中使用它

两个__init__.py文件都是空的。

myscript的内容

代码语言:javascript
复制
#!/usr/bin/env python
from mypackage import core
if __name__ == '__main__':
    core.main()

core.py的内容

代码语言:javascript
复制
def main():
    print 'hello'

当我从myproject目录内部运行myscript时,我得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "bin/myscript", line 2, in <module>
    from mypackage import core
ImportError: No module named mypackage

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-23 20:44:43

通常,Python应该将包安装在setup.py解释器可以找到的地方,这样安装后import mypackage就可以工作了。为了便于直接从开发树运行bin中的脚本,我通常只需在bin目录中添加一个指向../mypackage/的简单链接。当然,这需要一个支持符号链接…的文件系统

票数 6
EN

Stack Overflow用户

发布于 2019-12-04 19:49:07

我通常将我的bin路径添加到$PYTHONPATH中,这将使python也能够在bin目录中查找被请求的模块。

代码语言:javascript
复制
export PYTHONPATH=/home/username/bin:$PYTHONPATH
$ python
import module_from_bin
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11612743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档