最近在用python的flask时候发现一点问题,代码组织如下

|-app

|-__init__.py

|-views.py

|-operations.py

|-xxx.py

|-run.py

按照python的约定,app作为一个包(package),引入到run.py当中

from app import app

在app/__init__.py中加入需要引入的包

from app import views,operations,xxx

按照这样的结构运行整个项目是ok的

operations.py 写了一些后台任务的逻辑,其中有一些对象是从__init__.py当中引入的

from app import app, db_session, alarm_user, logger

单独运行operations.py来调试一部分代码时候发现了问题

if __name__ == "__main__":

#print get_password()

#print get_replication()

print refresh_instance()

在PyCharm当中运行正常,但在命令行环境下无法运行,会出现如下错误:

#python operations.py

Traceback (most recent call last):

File "operations.py", line 3, in

from app import app, db_session, alarm_user, logger

ImportError: No module named app

思索之后发现了玄机,PyCharm运行是以项目的根目录作为程序运行环境的。当进入命令行之后,我们运行operations.py时的运行环境实际是在app/目录下,因此解析app包就失败了。

解决方法,扩展python运行环境,把根目录引入运行环境

#!/bin/env python

# -*- coding: utf-8 -*-

import sys

sys.path.append("../")

from app import app, db_session, alarm_user, logger

python导包的问题_python中包引入遇到的问题相关推荐

  1. python post有随机字符串_Python 中的POST/GET包构建以及随机字符串的生成

    现在,我们来用Python,创建GET包和POST包. 至于有什么用处,大家慢慢体会. Python 中包含了大量的库,作为一门新兴的语言,Python 对HTTP有足够强大的支持. 现在,我们引入新 ...

  2. python从包中导入模块_Python中包,模块导入的方法

    Python中包,模块导入的方法 http://www.cnblogs.com/allenblogs/archive/2011/05/24/2055149.html 1. import modname ...

  3. python下载哪一个安装包_python中正确安装对应版本的包

    python在写机器学习的代码过程中,需要引入如numpy.matpoltlib.pandas等等等.有时候直接pip install+对应的包名并不能正确安装,或者安装后依旧会出现安装不完全的情况. ...

  4. python 不安全的包或方法_Python中的10个常见安全漏洞及修复方法

    写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例.然而,许多 ...

  5. python中模块和包是什么_Python中模块和包的概念

    将所有代码放入一个py文件:无法维护 如果将代码分拆放入多个py文件,好处: 同一个名字的变量互不影响 模块a 模块b | | V V #a.py #b.py x = 5 x = 'str' def ...

  6. python 抓包解析数据_Python抓包并解析json爬虫的完整实例代码

    Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时 ...

  7. python包怎么用_python的包怎么应用

    python的包怎么应用 发布时间:2020-08-26 11:26:33 来源:亿速云 阅读:97 作者:Leah 这篇文章运用简单易懂的例子给大家介绍python的包怎么应用,代码非常详细,感兴趣 ...

  8. python常用函数的用法_python中常用函数整理

    1.map map是python内置的高阶函数,它接收一个函数和一个列表,函数依次作用在列表的每个元素上,返回一个可迭代map对象. class map(object):""&qu ...

  9. python什么是可变参数_python中的可变参数和不可变参数

    原博文 2016-11-08 21:35 − 知识点:Python中,万物皆对象. python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址. 一.可变对象和不可变对象 Pyth ...

最新文章

  1. 爬虫图片href是html图片,python爬虫取图片详解,
  2. 互联网大脑,城市大脑的“大脑”究竟什么含义?
  3. (转)分布式文件存储FastDFS(五)FastDFS常用命令总结
  4. SQL查询案例:行列转换[行转列, 使用 CASE WHEN 处理]
  5. JQuery DOM基本操作
  6. 近世代数--群同构--第三同构定理
  7. 【转】LUA内存分析
  8. linux拒绝sftp连接,linux服务器拒绝sftp
  9. JAVA排序算法之插入排序
  10. 前端学习之JavaScript第二天学习
  11. JavaWeb之Filter过滤器
  12. 这年头「野路子」产品太多了
  13. 第六章 自动测试实施(上)
  14. 火狐浏览器安装插件“组件未验证无法安装”问题解决
  15. nodejs mysql嵌套查询_nodejs+mysql嵌套查询的问题
  16. 中国IT排名百强公司 .
  17. mysql高效查询_mysql 高效率查询背景
  18. 记湖南省第十六届软件设计大赛
  19. 世界期货市场竞争格局的变迁
  20. struts2接收文件全是后缀名tmp解决办法

热门文章

  1. 通道交易法的理论-趋势与反转的交易的根本理念你又知道那些
  2. Unity 国际化 多语言设置
  3. 软通动力携手华为云WeLink实现数字化协同升级
  4. 推荐一个好用的PDF转TXT软件
  5. 翻译|《Word Power Made Easy》(xiii~xxiii)
  6. dsge matlab,DSGE笔记系列1:Dynare基本应用(1)
  7. 车头车尾识别(有待完善)
  8. [github项目]迅雷吸血进程自动清扫工具thunderAutoManager
  9. 输入一组数,求其平均数,并输出其中大于平均数的所有数
  10. 《网络工程师》 Part5 无线通信网