ubuntu18.04----Python环境配置与虚拟环境,解决常见错误问
题Python。。。
Python.h: 没有那个⽂件或⽬录
解决⽅法是安装python-dev,这是Python的头⽂件和静态库包:
sudo apt-get install python-dev
sudo apt-get install python3-dev
先说下环境 虚拟机Ubuntu16.04 系统默认Python 2.7.12 ,系统还⾃带3.5版本的,后来⾃⼰⼜装了3.6版本。
在系统安装过程中,总是报错,因为是源码安装的,所以系统要进⾏编译,但是不到python.h⽂件
sudo apt install python3.6-dev
虚拟环境安装后创建时报错解决⽅案:sudo apt-get install aptitude
⽆法定位软件包的问题解决:
打开ubuntu的终端,在终端中运⾏以下的命令:
sudo apt-get update
更新⼀些软件源。
虚拟环境的安装
错误解决⽅案:sudo apt-get install aptitude
#使⽤pip⽅式进⾏虚拟环境的安装,pip默认使⽤的是python2.7环境,
可以使⽤pip3,此时python环境使⽤的是python3,使⽤pip3会出现下⾯注意中的报错,需要再进⾏相
sudo pip install virtualenvwrapper
# 创建虚拟环境
mkvirtualenv 虚拟环境名称
补充: 创建的虚拟环境都保存在/home/.virtualenvs⽬录下,可以进⼊这个⽬录查看;
创建成功后会⾃动进⼊该虚拟环境,命令⾏提⽰改变;
指定python版本创建虚拟环境,我们使⽤python3
mkvirtualenv -p python3(或python路径) 虚拟环境名称
whereis python3可以查看python3的路径
细节:不需要进⼊到/home/.virtualenvs⽬录,在任何⽬录下都可以执⾏命令,创建的虚拟环境的位置都⼀样。
创建虚拟环境是需要在联⽹下进⾏,否则创建失败。
注意:使⽤mkvirtualenv创建虚拟环境,可能提⽰不到命令,⼀般是脚本⽂件没有加⼊系统路径,
还有⼀种报错:/usr/bin/python: No module named virtualenvwrapper,
错误原因:Ubuntu安装了2.7和3.x两个版本的python,
在安装时使⽤的是sudo pip3 install virtualenvwrapper,
在我运⾏的时候默认使⽤的是python2.x,但在python2.x中不存在对应的模块
# 解决⽅案:
#1、打开~/.bashrc⽂件,并添加如下: 在⽂件管理器中:ctrl+H可以查看当前路径下的所有⽂件,包括隐藏⽂件VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
#更改默认使⽤的python的版本,设置为python3,⽤于解决前⾯使⽤pip3安装虚拟环境的遗留问题
source /usr/local/bin/virtualenvwrapper.sh
#这个解决创建时提⽰不到命令mkvirtualenv,需要添加绝对路径,通过下⾯⼀条指令可以查看:
#到virtualenvwrapper的脚本⽂件,whereis virtualenvwrapper
# 2、执⾏脚本,初始化bash环境
source ~/.bashrc
查看:pip freeze
查看安装的版本:virtualenv --version
进⼊:workon 虚拟环境名称
在虚拟环境下安装python包
进⼊虚拟环境,在终端输⼊:pip install 包的名字
退出:deactivate
查看所有的虚拟环境:workon 连按两次Tab键
删除:rmvirtualenv 虚拟环境名称
安装flask-0.10.1的包
pip install flask==0.10.1
安装 Flask-Script 扩展 脚本启动
pip install flask-script
mysql数据库
安装mysql:sudo apt-get install mysql-server
启动和关闭mysql服务器:service mysql start service mysql stop
进⼊:mysql -u root -p
发现MySQL的root⽤户的plugin被修改了,只有换成mysql_native_password才可以使⽤密码登录MySQL。
使⽤下⾯的命令更改plugin,同时设置MySQL的root访问密码
update mysql.user set authentication_string=PASSWORD('mysql'), plugin='mysql_native_password' where user='root'; flush privileges;
Flask-SQLAlchemy安装及设置
查看:mysql --version
安装:flask-sqlalchemy
pip install flask-sqlalchemy
pip install flask-mysqldb
如果连接的是 mysql 数据库,需要安装 mysqldb ⽆法安装时,使⽤pip install pymysql
注意:OSError: mysql_config not found错误:
解决⽅案:sudo apt-get install libmysqlclient-dev python3-dev
参考链接
linux命令中which、whereis、locate有什么区别?
1.find
find是最常⽤和最强⼤的查命令。它能做到实时查,精确查,但速度慢。
find的使⽤格式如下:
#find [指定⽬录] [指定条件] [指定动作]
指定⽬录:是指所要搜索的⽬录和其⼦⽬录。如果不指定,则默认为当前⽬录。
指定条件:是指所要搜索的⽂件的特点。
指定动作:是指对搜索的结果如何处理。
常见选项:
-name 根据⽂件名称查(严格区分⼤⼩写,如果⽂件名中间有空格,则必须把⽂件名⽤双引号引起来)
-iname 根据⽂件名查(不区分⼤⼩写)
-regex "PATTERN" 正则表达式匹配
-user 根据⽂件属主进⾏查
-group 根据⽂件属组进⾏查
-uid 根据⽂件的uid查
-gid 根据⽤户的gid查
-nouser 查看所有的没有属主的⽂件
-nogroup 查看所有的没有属组的⽂件
例:查看tmp⽬录下,⽂件属主为redhat的⽂件
#ls -l `find /tmp -user redhat`
2.locate
locate命令不是实时查,所以查的结果不精确,但查速度很快。因为它查的不是⽬录,⽽是⼀个数据库
(/var/lib/locatedb),这个数据库中含有本地所有⽂件信息。Linux系统⾃动创建这个数据库,并且每天⾃动更新⼀次,所以使⽤locate 命令查不到最新变动过的⽂件。为了避免这种情况,可以在使⽤locate之前,先使⽤updatedb命令,⼿动更新数据库。
locate使⽤格式
locate [指定⽬录]
例:查所有包含passwd的⽂件
#locate passwd
例:查所有包含passwd的⽂件,并且只显⽰前⼗个
#locate -n 10 passwd
3.which
which命令是查命令是否存在,以及命令的存放位置在哪⼉。
例:#which ls
4.whereis
whereis命令只能⽤于搜索程序名,⽽且只搜索⼆进制⽂件(参数-b)、man说明⽂件(参数-m)和源代码⽂件(参数-s)。如果省略参数,则返回所有信息。
whereis命令的使⽤实例:
#whereis vim
5.type
type命令⽤来区分某个命令到底是由shell⾃带的,还是由shell外部的独⽴⼆进制⽂件提供的。如果⼀个命令是外部命令,那么使⽤-p 参数,会显⽰该命令的路径,相当于which命令。
#type cd
系统会提⽰,cd是shell的⾃带命令(build-in)。
#type grep
系统会提⽰,grep是⼀个外部命令,并显⽰该命令的路径。
#type -p vim
加上-p参数后,就相当于which命令
./configure是⽤来检测你的安装平台的⽬标特征的。⽐如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是⽤来编译的,它从Makefile中读取指令,然后编译。
make install是⽤来安装的,它也从Makefile中读取指令,安装到指定的位置。
AUTOMAKE和AUTOCONF是⾮常有⽤的⽤来发布C程序的东西。
-----
1、configure,这⼀步⼀般⽤来⽣成 Makefile,为下⼀步的编译做准备,你可以通过在 configure 后加上参数来对安装进⾏控制,⽐如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下⾯,执⾏⽂件就会安装在 /usr/bin (⽽不是默认的 /usr/local/bin),资源⽂件就会安装在 /usr/share(⽽不是默认的/usr/local/share)。同时⼀些软件的配置⽂件你可以通过指定 –sys-config= 参数进⾏设定。有⼀些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help
察看详细的说明帮助。
2、make,这⼀步就是编译,⼤多数的源代码包都经过这⼀步进⾏编译(当然有些perl或python编写的软件需要调⽤perl或python来进⾏编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后⼀⾏),然后你可以向开发者提交 bugreport(⼀般在 INSTALL ⾥有提交地址),或者你的系统少了⼀些依赖库等,这些需要⾃⼰仔细研究错误代码。
3、make insatll,这条命令来进⾏安装(当然有些软件需要先运⾏ make check 或 make test 来进⾏⼀些测试),这⼀步⼀般需要你有root 权限(因为要向系统写⼊⽂件)。
mysql下载后安装中出现提示不到安装包-----
Linux的⽤户可能知道,在Linux下安装⼀个应⽤程序时,⼀般先运⾏脚本configure,然后⽤make来编译源程序,在运⾏make install,最后运⾏make clean删除⼀些临时⽂件。使⽤上述三个⾃动⼯具,就可以⽣成configure脚本。运⾏configure脚本,就可以⽣成Makefile ⽂件,然后就可以运⾏make、make install和make clean。
configure是⼀个shell脚本,它可以⾃动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产⽣合适的Makefile⽂件或是C的头⽂件(header file),让源程序可以很⽅便地在这些不同的平台上被编译连接。
这时,就可运⾏configure脚本了,运⾏configure脚本,就可产⽣出符合GNU规范的Makefile⽂件了:
$ ./configure
到此时,就可以运⾏make进⾏编译,在运⾏make install进⾏安装了,最后运⾏make clean删除临时⽂件。
$ make
$ make install (注:运⾏这个要有⾜够的权限)
$ make clean
利⽤configure所产⽣的Makefile⽂件有⼏个预设的⽬标可供使⽤,其中⼏个重要的简述如下:
make all:产⽣我们设定的⽬标,即此范例中的可执⾏⽂件。只打make也可以,此时会开始编译原始码,然后连结,并且产⽣可执⾏⽂件。
make clean:清除编译产⽣的可执⾏⽂件及⽬标⽂件(object file,*.o)。
make distclean:除了清除可执⾏⽂件和⽬标⽂件外,把configure所产⽣的Makefile也清除掉。
make install:将程序安装⾄系统中。如果原始码编译⽆误,且执⾏结果正确,便可以把程序安装⾄系统预设的可执⾏⽂件存放路径。如果⽤bin_PROGRAMS宏的话,程序会被安装⾄/usr/local/bin这个⽬录。
make dist:将程序和相关的档案包装成⼀个压缩⽂件以供发布。执⾏完在⽬录下会产⽣⼀个以为名称的⽂件。 PACKAGE和VERSION这两个变数是根据configure.in⽂件中AM_INIT_AUTOMAKE(PACKAGE,VERSION)的定义。在此范例中会产⽣test-1.的档案。
make distcheck:和make dist类似,但是加⼊检查包装后的压缩⽂件是否正常。这个⽬标除了把程序和相关⽂件包装成⽂件外,还会⾃动把
这个压缩⽂件解开,执⾏ configure,并且进⾏make all 的动作,确认编译⽆误后,会显⽰这个⽂件可供发布了。这个检查⾮常有⽤,检查过关的包,基本上可以给任何⼀个具备GNU开发环境-的⼈去重新编译。
apt-get常⽤命令
⼀,什么的是apt-get
⾼级包装⼯具(英语:Advanced Packaging Tools,简称:APT)是Debian及其衍⽣发⾏版(如:ubuntu)的软件包管理器。APT可以⾃动下载,配置,安装⼆进制或者源代码格式的软 件包,因此简化了 Unix系统上管理软件的过程,apt-get命令⼀般需要root权限执⾏,所以⼀般跟着sudo命令。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论