python flask 全家桶在flask中用flask-script脚本的形式后台运行导出,并以邮件的形式发出

神级程序员从零教你熟用Flask!(小白专用Flask教程)神级程序员从零教你熟用Flask!(小白专用Flask教程)一个英俊的麦太保百家号Python Flask是一种API,可帮助我们在python中构建基于Web的应用程序。我们现在开始使用pythonFlask教程给初学者。再给大家分享之前,容我介绍一下我的开车群,大家都非常乐意解答,乐意交流沟通,就等你的到来。Python学习群:,如果你正在学习python,小编欢迎你加入,大家都是Python党,不定期分享干货(只有Python爬虫,框架,零基础都有),包括我自己整理的一份2017最新的Python资料和零基础入门教程,欢迎初学和进阶中的小伙伴。Python Flask首先,我们必须安装python Flask模块。您可以通过命令提示符或IDE的帮助来执行此操作。我正在使用PyCharm Community Edition 2017.2。所以我将使用这个IDE安装Flask。打开PyCharm然后点击文件&设置。然后展开项目,然后点击项目解释器。你会看到如下:我已经安装了Flask,所以列表显示了Flask。您必须单击窗口右侧的+按钮。然后弹出可用的包窗口。在搜索栏中键入Flask,就会出现。点击Flask并在窗口的底部按安装。如果连接到互联网,Flask将被安装到您的python。您可以pip通过以下命令安装python烧瓶模块。所以我们安装了python flask模块。现在我们将开始编码。Python Flask上的第一个网页创建一个名为FlaskTutorial的新项目。然后我创建一个名为的python文件Main.py。在这个文件中,我们有以下代码段:然后运行python文件,您将在控制台日志中看到以下内容:* Running on http://127.0.0.1:5000/ (Press CTRL+C toquit)现在打开浏览器并复制粘贴http://127.0.0.1:5000/控制台中显示的url()。那么你会得到如下图像的html响应。所以这是我们的python flask的基本网页守则说明在第一行我们已经导入了Flask模块的Flask类.然后@app.route()是thedecorator是装饰index()功能。而我们将索引页的URL设置为“/”。index()函数返回一个我们在网页中看到的字符串。我们也可以在这里返回html代码。最后我们检查是否__main__直接运行。如果是,则运行应用程序。然后我们在浏览器中看到结果。Python Flask Tutorial现在来看看另一个例子,我们将在表单中提交一些数据,然后在下一页显示。首先创建一个模板文件夹。在这个模板文件夹中创建两个html文件。如下:login.html现在编写login.html代码如下所示。此html文件的主要功能是创建一个具有两个输入字段和一个提交按钮的表单。请注意我们写的表单标签action="/FlaskTutorial"。我们稍后再讨论一下。现在只要记住它。所有其他的都是一样的html文件。现在看到Main.py文件中的输出写入。因为我们将使用html的模板,所以在第一行我们已经导入了render_template。在浏览器中粘贴此url(http://127.0.0.1:5000/login)并输入。您将看到如下输出:现在我们要做的是提交按钮。提交按钮将发送电子邮件地址到另一个Html文件,名称success.html将显示电子邮件地址与成功消息。现在我们来写success.html代码,如下所示。success.html请注意,在body标签中有一个双重的大括号。在这里,电子邮件是从登录页面发送的值。所有其他的都是一样的html代码。现在再次返回到Main.py文件,我们必须写下面的代码。Main.py请注意,我们已经添加了另一个名为路径/FlaskTutorial。这个另一个参数叫做方法。在返回函数中,我们发送了一个参数名称电子邮件,我们从使用的文本字段获取,并将login.html其action=/FlaskTutorial嵌入到success.html文件中。现在,如果我们运行Main.py,打开浏览器的url并给出如下输入:然后按提交将输出:所以这是如何使用python flask从一个html文件发送数据到另一个html文件。希望能帮到你学习。本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。一个英俊的麦太保百家号最近更新:简介:轻松魔术世界,你看。作者最新文章相关文章Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程_python
作者:用户
我们在升级系统的时候,经常碰到需要更新服务器端数据结构等操作,之前的方式是通过手工编写alter sql脚本处理,经常会发现遗漏,导致程序发布到服务器上后无法正常使用。现在我们可以使用Flask-Migrate插件来解决之,Flask-Migrate插件是基于Alembic,Alembic是由大名鼎鼎的SQLAlchemy作者开发数据迁移工具。具体操作如下:1. 安装Flask-Migrat...
我们在升级系统的时候,经常碰到需要更新服务器端数据结构等操作,之前的方式是通过手工编写alter sql脚本处理,经常会发现遗漏,导致程序发布到服务器上后无法正常使用。
现在我们可以使用Flask-Migrate插件来解决之,Flask-Migrate插件是基于Alembic,Alembic是由大名鼎鼎的SQLAlchemy作者开发数据迁移工具。
具体操作如下:
1. 安装Flask-Migrate插件
$ pip install Flask-Migrate
2. 修改Flask App部分的代码,以增加Migrate相关的Command
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
$ python app.py db init
使用Flask-Migrate迁移数据库
随着开发进度不断向前,你会发现你的数据库模型需要更改,而当这种情况发生时需要更新数据库。
Flask-SQLAlchemy只有当数据库表不存在了才从模型创建它们,所以更新表的唯一途径就是销毁旧的表,当然这将导致所有数据库中的数据丢失。
有个更好的解决方案就是使用数据库迁移框架。和源码版本控制工具跟踪更改源码文件一样,数据库迁移框架跟踪更改数据库模型,然后将增量变化应用到数据库中。
SQLAlchemy的主要开发人员写了一个Alembic迁移框架,但我们不直接使用Alembic,Flask应用可以使用Flask-Migrate扩展,一个集成了Flask-Script来提供所有操作命令的轻量级Alembic包。
4. 创建迁移仓库
首先,Flask-Migrate必须已经安装到虚拟环境中:
(venv) $ pip install flask-migrate
下面展示扩展如何初始化:
from flask.ext.migrate import Migrate, MigrateCommand
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)
为了可以使用数据库迁移命令,Flask-Migrate提供MigrateCommand类来连接Flask-Script的manager对象。在这个示例中使用db来连接到命令。
在数据库迁移可以维护之前,必须通过init子命令来创建一个迁移库:
(venv) $ python hello.py db init
Creating directory /home/flask/flasky/migrations...done
Creating directory /home/flask/flasky/migrations/versions...done
Generating /home/flask/flasky/migrations/alembic.ini...done
Generating /home/flask/flasky/migrations/env.py...done
Generating /home/flask/flasky/migrations/env.pyc...done
Generating /home/flask/flasky/migrations/README...done
Generating /home/flask/flasky/migrations/script.py.mako...done
Please edit configuration/connection/logging settings in
'/home/flask/flasky/migrations/alembic.ini' before proceeding.
这个命令创建一个migrations文件夹,里面存放了所有迁移脚本。
建议:如果你有克隆在GitHub上的应用程序,你现在可以运行git checkout 5c来切换到这个版本的应用程序。
5. 创建迁移脚本
在Alembic,数据库迁移工作由迁移脚本完成。这个脚本有两个函数,分别叫做upgrade()和downgrade()。upgrade()函数实施数据库更改,是迁移的一部分,downgrade()函数则删除它们。通过添加和删除数据库变化的能力,Alembic可以重新配置数据库从历史记录中的任何时间点。
Alembic迁移可以分别使用revision和migrate命令手动或自动创建。手动迁移通过由开发人员使用Alembic的Operations对象指令实现的空upgrade()和downgrade()函数创建迁移框架脚本。另一方面,自动迁移通过寻找模型定义和数据库当前状态间的不同为upgrade()和downgrade()生成代码。
警告:自动迁移并不总是准确的,可以忽略一些细节。所以应该经常审查一下自动生成的迁移脚本。
migrate子命令创建自动迁移脚本:
(venv) $ python hello.py db migrate -m "initial migration"
INFO [alembic.migration] Context impl SQLiteImpl.
INFO [alembic.migration] Will assume non-transactional DDL.
INFO [alembic.autogenerate] Detected added table 'roles'
INFO [alembic.autogenerate] Detected added table 'users'
INFO [alembic.autogenerate.compare] Detected added index
'ix_users_username' on '['username']'
Generating /home/flask/flasky/migrations/versions/1bc
_initial_migration.py...done
建议:如果你有克隆在GitHub上的应用程序,你现在可以运行git checkout 5c来切换到这个版本的应用程序。注意,你不需要为这个应用生成migrations,所有的迁移脚本都包含在版本库中。
6. 更新数据库
一旦迁移脚本被审查且接受,就可以使用db upgrade命令更新到数据库中:
(venv) $ python hello.py db upgrade
INFO [alembic.migration] Context impl SQLiteImpl.
INFO [alembic.migration] Will assume non-transactional DDL.
INFO [alembic.migration] Running upgrade None -& 1bc, initial migration
第一次迁移实际上相当于调用db.create_all(),但在后续迁移中,upgrade命令对表实施更新操作但不影响表中的内容。
以上是互联网用户为您的的内容,在阿里云内部有更多的关于Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程_python的内容,欢迎继续使用右上角搜索按钮进行搜索数据库、python、Flask、Flask-Migrate、以便于您获取更多的相关信息。
本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:zixun-group@service.aliyun.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
若您要投稿,删除文章请联系邮箱:zixun-group@service.aliyun.com
工作人员会在5个工作日内回复
脚本栏目为您免费提供
相关信息,包括
的信息 ,所有
相关内容均不代表阿里云的意见!投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员5个工作日内回复。Ubuntu 部署 Flask + WSGI + Nginx 详解_服务器应用_Linux公社-Linux系统门户网站
你好,游客
Ubuntu 部署 Flask + WSGI + Nginx 详解
来源:Linux社区&
作者:Ray-liang
入手了一台阿里云服务器,是 14.04 32位版本,最初考虑是用来尝尝鲜只是买了个最低配的,价格算起来与在国外买个空间的价格相当吧(可能一年才贵100多),但用起来感觉就很不错,速度那是一个字:快。
自从倒戈向Linux世界后,对于一切大而全的开发框架与软件都有一种不讨喜的感觉,个人更喜欢于使用那些小而精,高性能高产生力的软件和开发框架,So 我现在的第一语言是Python和Coffee,开发框架就当然是 AngularJS (前端) + Flask (后端) ,关于 AngularJS 与 Flask 不在本文的叙述范围之内,本文解决的是 Flask 最后一公里的问题:Linux 部署。
我采用的部署方案是:
Web 服务器采用 uwsgi host Flask
用 Supervisor 引用 uwsgi 作常规启动服务
基于 Nginx 作反向代理
首先, 阿里云服务器可以通过 SSH 指令在本机的终端进行远程连接
@云服务器地址
输入密码进入后所有的操作与本地终端完全一至。
安装 Python 环境
接下来是python , Ubuntu 的默认环境已经预装 python 2.7 所以只需要安装 python 的 pip 安装工具即可。pip 用于安装一些基于python 应用的软件工具,在下文中将会频繁使用。
如果用python 而不懂 [pip|] 那最好就快点脑补吧, 指令如下:
sudo apt-get install pip
VirtualEnv
不同的项目可能会引用各种不同的依赖包,为了避免版本与和应用之间的冲突而造成的&依赖地狱&[Virtualenv | ] 就是我们python 项目的必须品了。VirtualEnv 可以为每个Python应用创建独立的开发环境,使他们互不影响,Virtualenv 能够做到:
在没有权限的情况下安装新套件
不同应用可以使用不同的套件版本
套件升级不影响其他应用
sudo pip install virtualenv
安装VirtualEnv 后只需要在项目目录内运行 virtualenv 目录名 就可以建立一个虚拟环境文件夹,然后启用 activate 指令即可启用该python虚拟环境,具体操作如下:
假定我的项目目录叫 /home/www/my_flask,首先安装虚拟环境 (我习惯使用的虚拟环境目录叫 venv )
my_flask root$ virtualenv venv
&& New python executable in venv/bin/python
&& Installing setuptools, pip...done.
在项目目录下就会建立一个新的 venv 目录,里面就是运行python 的基本环境的工具与指令,和包。 然后启用该环境,使用当前命令行状态进入虚拟环境,进入虚拟环境后,一切安装python的操作都会将包和引用装在虚拟环境内,而不会影响到全局的python 环境。
my_flask root$ source venv/bin/activate
(venv)my_flask root$
调用 activate 指令后命令符前就会出现 (venv) 字样。 可通过 deactivate 退出虚拟环境。
安装 uWSGI
Flask 的实际生产运行环境选择并不多,比较成熟的是 [Gunicorn|] 和 [uWSGI|] ,听说Gunicorn 的配置很简单,但可惜我一直没有配置成功过,我现采用的是 uWSGI。接下来就安装uWSGI吧。
(venv)my_flask root$ pip install uwsgi
在虚拟环境下不需要使用 sudo ,因为virtualenv 是没有权限要求的。
这个安装很迅速,基本是秒成。安装完成后我们可以先放下 uWSGI 不表,在后面再回过来配置他,因为我们首先要将关键的 Flask环境和我们的项目文件传到服务器目录内。
安装 Flask
我是用清单文件一次性安装Flask和他的相关依赖的,这样会更快。我的引用清单是这样的:requirements.txt
Flask==0.10.1
Flask-Login==0.2.11
Flask-Mail==0.9.1
Flask-Moment==0.4.0
Flask-PageDown==0.1.5
Flask-SQLAlchemy==2.0
Flask-Script==2.0.5
Flask-WTF==0.10.2
Flask-Cache==0.13.1
Flask-Restless==0.15.0
Flask-Uploads==0.1.3
Jinja2==2.7.3
Mako==1.0.0
Markdown==2.5.1
MarkupSafe==0.23
SQLAlchemy==0.9.8
WTForms==2.0.1
Werkzeug==0.9.6
html5lib==1.0b3
itsdangerous==0.24
six==1.8.0
awesome-slugify==1.6
可以想像,如果一个一个装非疯了不可。安装清单文件:
(venv)my_flask root$ pip install -r requirements.txt
在此还是重重地提一下:一定要注意在运行这个安装之前启用了python 虚拟环境,否则会直接安装到全局去的!
接下来就是上传 Flask的项目文件,之前我在各大的&转载专业户&里找了好多的资料,在这一步中大多只是在上面加个标准的Flask运行文件,虽说做个范例可以但说实在的这很让人迷惑,为什么?先看看代码吧:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
生产环境内,谁会用这样的代码呢,这只是Flask 的最简入门范,我的Flask项目中 app 是被做在包内的,相信很多人都是这样做的,在包外我们采用 Flask Script 写一个 manage.py 文件 作为启动文件,这更方便于支持各种的项目,包括可以安装到 window下的 FastCGI 中。
那么我的 这个 manage.py 是这个样子的:
if os.path.exists('.env'):
print('Importing environment from .env...')
for line in open('.env'):
var = line.strip().split('=')
if len(var) == 2:
os.environ[var[0]] = var[1]
from app import create_app
from flask.ext.script import Manager, Shell
app = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(app)
def make_shell_context():
return dict(app=app)
manager.add_command("shell", Shell(make_context=make_shell_context))
@manager.command
def deploy():
"""Run deployment tasks."""
if __name__ == '__main__':
manager.run()
这样做我地开发环境可以这样运行 Flask:
python manage.py runserver
更详细的做法请参考 [Flask Script|] 扩展
好吧,我们可以用 支持SSH的FTP工具将Flask项目文件上传到服务器上,下面是整个项目文件结构:
└── my_flask
├── logs
└── venv
├── bin
├── activate
├── easy_install
├── gunicorn
├── pip
└── python
├── include
└── python2.7 -& /usr/include/python2.7
├── lib
└── python2.7
├── local
├── bin -& /home/shenye/shenyefuli/bin
├── include -& /home/shenye/shenyefuli/include
└── lib -& /home/shenye/shenyefuli/lib
└── app
__init__.py
├── manage.py
├── requirements.txt
配置 uwsgi
好了,项目的准备工作已经做完了,是时候回过头去配置 uwsgi 了,它的具体指令可以去看它的官方文档,我们在这里采用其中的一种指令方式:配置起动。我采用 .ini文件作为配置,在项目目录下创建一个 confg.ini (具体见下文)写好后可以这样执行
(venv)my_flask root$ uwsgi config.ini
我认为是最简单的方式,也容易更改。好了重要部分来了,config.ini 是这样写的:
socket = 127.0.0.1:8001
chdir = /home/www/
wsgi-file = manage.py
callable = app
processes = 4
threads = 2
stats = 127.0.0.1:9191
注意 : callable=app 这个 app 是 manage.py 程序文件内的一个变量,这个变量的类型是 Flask的 application 类 。
运行 uwsgi
```(venv)my_flask root$ uwsgi config.ini
[uWSGI] getting INI configuration from config.ini
*** Starting uWSGI 2.0.8 (64bit) on [Fri Dec 19 14:34:11 2014] // 此处略去那些无用的启动信息Stats server enabled on 127.0.0.1:9191 fd: 15 ***```
OK, 此时已经正常启动 uwsgi 并将 Flask 项目载入其中了,ctrl+c 关闭程序。但这只是命令启动形式,要使其随同服务器启动并作为后台服务运行才是运营环境的实际所需要。因此接下来我们需要安装另一个工具来引导 uwsgi 。
安装 Supervisor
[Supervisor|]可以同时启动多个应用,最重要的是,当某个应用Crash的时候,他可以自动重启该应用,保证可用性。
sudo apt-get install supervisor
Supervisor 的全局的配置文件位置在:
/etc/supervisor/supervisor.conf
正常情况下我们并不需要去对其作出任何的改动,只需要添加一个新的 *.conf 文件放在
/etc/supervisor/conf.d/
下就可以,那么我们就新建立一个用于启动 my_flask 项目的 uwsgi 的 supervisor 配置 (命名为:my_flask_supervisor.conf):
[program:my_flask]
command=/home/www/my_flask/venv/bin/uwsgi /home/www/my_flask/config.ini
directory=/home/www/my_flask
autostart=true
autorestart=true
stdout_logfile=/home/www/my_flask/logs/uwsgi_supervisor.log
sudo service supervisor start
sudo service supervisor stop
安装 Nginx
[Nginx|]是轻量级、性能强、占用资源少,能很好的处理高并发的反向代理软件。
sudo apt-get install nginx
配置 Nginx
Ubuntu 上配置 Nginx 也是很简单,不要去改动默认的 nginx.conf 只需要将
/ext/nginx/sites-available/default
文件替换掉就可以了。
新建一个 default 文件:
server_name XXX.XXX.XXX;
location / {
uwsgi_pass
127.0.0.1:8001;
uwsgi_param UWSGI_PYHOME /home/www/my_flask/
uwsgi_param UWSGI_CHDIR
/home/www/my_
uwsgi_param UWSGI_SCRIPT manage:
将default配置文件替换掉就大功告成了!还有,更改配置还需要记得重启一下nginx:
sudo service nginx restart
阿里云的服务器运行速度很不错,加上Flask+uWSGI+nginx 这种高性能结构,整个网站响应速度极为之快,每页响应速度不到0.1s , 与之相比我之前使用 C# 部署在Avarix 上的网站(同一个程序,不同语言实现)每页响应速度至少2s 这简直是 200:1的性能,当然我还没有闲到去专们用软件去测这两者之间的差值,写本文的目的也是对此作一记录,以便以后回顾。
Ubuntu Server 14.04.2 LTS 配置 Nginx + Uwsgi + Django&
Ubuntu 12.04 下部署 Nginx+uWSGI+Flask
你应该使用 Nginx + uWSGI
uWSGI + Nginx 部署 Flask Web 应用
Django+Nginx+uWSGI 部署
Linux下Nginx+uWSGI部署Python应用
Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境
5.5 + Nginx 0.8.50 + uWSGI + Django 1.2.3 部署Django项目
Nginx 的详细介绍:Nginx 的下载地址:
更多Ubuntu相关信息见 专题页面
本文永久更新链接地址:
相关资讯 & & &
& (09/20/:13)
& (06/26/:39)
& (12/31/:43)
& (07/12/:38)
& (06/01/:23)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
匿名 发表于 牛逼Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开;
Flask Script和Flask本身的工作方式类似,只需定义和添加从命令行中被Manager实例调用的命令;
官方文档:
1 创建并运行命令
首先,创建一个Python模板运行命令脚本,可起名为manager.py;
在该文件中,必须有一个Manager实例,Manager类追踪所有在命令行中调用的命令和处理过程的调用运行情况;
Manager只有一个参数——Flask实例,也可以是一个函数或其他的返回Flask实例;
调用manager.run()启动Manager实例接收命令行中的命令;
#-*-coding:utf8-*-
from flask_script import Manager
from debug import app
manager = Manager(app)
if __name__ == '__main__':
manager.run()
其次,创建并加入命令;
有三种方法创建命令,即创建Command子类、使用@command修饰符、使用@option修饰符;
第一种——创建Command子类
Command子类必须定义一个run方法;
举例:创建Hello命令,并将Hello命令加入Manager实例;
from flask_script import Manager
from flask_script import Command
from debug import app
manager = Manager(app)
class Hello(Command):
'hello world'
def run(self):
print 'hello world'
#自定义命令一:
manager.add_command('hello', Hello())
# 自定义命令二:
manager.add_command("runserver", Server()) #命令是runserver
if __name__ == '__main__':
manager.run()
执行如下命令:
python manager.py hello& hello world
&python manager.py runserver&& hello world
第二种——使用Command实例的@command修饰符
#-*-coding:utf8-*-
from flask_script import Manager
from debug import app
manager = Manager(app)
@manager.command
def hello():
'hello world'
print 'hello world'
if __name__ == '__main__':
manager.run()
该方法创建命令的运行方式和Command类创建的运行方式相同;
python manager.py hello& hello world
第三种——使用Command实例的@option修饰符
复杂情况下,建议使用@option;
可以有多个@option选项参数;
from flask_script import Manager
from debug import app
manager = Manager(app)
@manager.option('-n', '--name', dest='name', help='Your name', default='world')
#命令既可以用-n,也可以用--name,dest="name"用户输入的命令的名字作为参数传给了函数中的name
@manager.option('-u', '--url', dest='url', default='www.csdn.com')
#命令既可以用-u,也可以用--url,dest="url"用户输入的命令的url作为参数传给了函数中的urldef hello(name, url):
'hello world or hello &setting name&'
print 'hello', name
if __name__ == '__main__':
manager.run()
运行方式如下:
python manager.py hello&hello world&www.csdn.com
python manager.py hello -n sissiy -u www.sissiy.com& hello sissiy&www.sissiy.com
python manager.py hello -name sissiy -url www.sissiy.com& hello sissiy&www.sissiy.com
阅读(...) 评论()为什么安装的flask-script在python目录下不识别_flask吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:261贴子:
为什么安装的flask-script在python目录下不识别
需要手动复制到工作空间的site-packages目录下才识别
python解释器你可能还没有了解,如果不复制到当前项目的site-packages中就建一个全局的,每次下载的模块包就放里面,然后项目的解释器就选择这个全局的就可以了,不过这样违背了virtualenv的初愿
贴吧热议榜
使用签名档&&
保存至快速回贴

我要回帖

更多关于 python形式参数 的文章

 

随机推荐