当前位置:首页 » 编程语言 » pythonbz2

pythonbz2

发布时间: 2023-01-22 00:22:05

❶ 如何在linux系统中安装python

linux系统中安装python包括以下三个步骤:

❷ python脚本如何解压bz2文件并解压到指定文件夹下(不是tar.bz2文件)。文件格式是DAT.bz2结尾的

PersistenceConfig(持久层配置)
我们想要一个配置了所有可用仓库的MONGODB配置。在这个简单的应用中我们只用了一个仓库,所以配置也非常的简单:

@Configuration
class PersistenceConfig {
@Bean
public AccountRepository accountRepository() throws UnknownHostException {
return new MongoAccountRepository(mongoTemplate());

❸ Python+Pandas入门2——导出csv

1、to_csv()

1、path_or_buf =None: string or file handle, default None
   File path or object, if None is provided the result is returned as a string.
字符串或文件句柄,默认无文件
路径或对象,如果没有提供,结果将返回为字符串。

2、sep : character, default ‘,’
   Field delimiter for the output file.
  默认字符 ‘ ,’
  输出文件的字段分隔符。

3、na_rep : string, default ‘’
   Missing data representation
  字符串,默认为 ‘’
  浮点数格式字符串

4、float_format : string, default None
   Format string for floating point numbers
  字符串,默认为 None
  浮点数格式字符串

5、columns : sequence, optional Columns to write
   顺序,可选列写入

6、header : boolean or list of string, default True
Write out the column names. If a list of strings is given it is assumed to be aliases for the column names
   字符串或布尔列表,默认为true
   写出列名。如果给定字符串行表,则假定为列名的别名。

7、index : boolean, default True
   Write row names (index)
  布尔值,默认为Ture
  写入行名称(索引)

8、index_label : string or sequence, or False, default None
  *Column label for index column(s) if desired. If None is given, and header and index are True, then the index names are used. A sequence should be given if the DataFrame uses MultiIndex. If False do not print fields for index names. Use index_label=False for easier importing in R
  字符串或序列,或False,默认为None
  如果需要,可以使用索引列的列标签。如果没有给出,且标题和索引为True,则使用索引名称。如果数据文件使用多索引,则应该使用这个序列。如果值为False,不打印索引字段。在R中使用  index_label=False 更容易导入索引.

9、encoding : string, optional
   编码:字符串,可选
  表示在输出文件中使用的编码的字符串,Python 2上默认为“ASCII”和Python 3上默认为“UTF-8”。

10、compression : string, optional
   字符串,可选项
  表示在输出文件中使用的压缩的字符串,允许值为“gzip”、“bz2”、“xz”,仅在第一个参数是文件名时使用。

11、line_terminator : string, default ‘ ’
   字符串,默认为 ‘ ’
  在输出文件中使用的换行字符或字符序列

12、quoting : optional constant from csv mole
  *CSV模块的可选常量
  输出是否用引号,默认参数值为0,表示不加双引号,参数值为1,则每个字段都会加上引号,数值也会被当作字符串看待

13、quotechar : string (length 1), default ‘”’
  *字符串(长度1),默认"
  当quoting=1可以指定引号字符为双引号"或单引号'

14、doublequote : boolean, default True
   布尔,默认为Ture
  控制一个字段内的quotechar

15、escapechar : string (length 1), default None
   字符串(长度为1),默认为None
  在适当的时候用来转义sep和quotechar的字符

16、chunksize : int or None
   int或None
  一次写入行

17、tupleize_cols : boolean, default False
   布尔值 ,默认为False
从版本0.21.0中删除:此参数将被删除,并且总是将多索引的每行写入CSV文件中的单独行
  (如果值为false)将多索引列作为元组列表(如果TRUE)或以新的、扩展的格式写入,其中每个多索引列是CSV中的一行。

18、date_format : string, default None
   字符串,默认为None
  字符串对象转换为日期时间对象

19、decimal : string, default ‘.’
   字符串,默认’。’
  字符识别为小数点分隔符。例如。欧洲数据使用 ​​’,’

20、mode : str
   模式:值为‘str’,字符串
  Python写模式,默认“w”

❹ ubuntu下怎么build一个完整的python

我们需要一个一个编译这些包:
1. common.sh:这个文件里包含一些基础设置,比如选用的GCC,CFLAGS和LDFLAGS如何配置。

[plain] view plain
export NDKDIR="/你的NDK路径比如/android-ndk-r10c"
# GCC 版本选用,目前有4.6,4.8,4.9,选用时也注意Linux系统的类型,这里x86_64是六十四位
export COMPILER="$NDKDIR/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin"
export CC="$COMPILER/arm-linux-androideabi-gcc"
export CXX="$COMPILER/arm-linux-androideabi-g++"
export CPP="$COMPILER/arm-linux-androideabi-cpp"
export LD="$COMPILER/arm-linux-androideabi-ld"
export AS="$COMPILER/arm-linux-androideabi-as"
export AR="$COMPILER/arm-linux-androideabi-ar"
export STRIP="$COMPILER/arm-linux-androideabi-strip"
export OBJCOPY="$COMPILER/arm-linux-androideabi-obj"
export OBJDUMP="$COMPILER/arm-linux-androideabi-objmp"
export RANLIB="$COMPILER/arm-linux-androideabi-ranlib"
export NM="$COMPILER/arm-linux-androideabi-nm"
export STRINGS="$COMPILER/arm-linux-androideabi-strings"
export READELF="$COMPILER/arm-linux-androideabi-readelf"

# 选择要编译文件在哪个Android版本上使用,这里案例是在Android 4.2上使用,就是android 17;2.2对应Android 8,5.0对应Android 21
export ANDROID="$NDKDIR/platforms/android-17/arch-arm/usr"
# 配置系统头文件和库文件位置
export CFLAGS="-I$ANDROID/include --sysroot=$ANDROID"
export CXXFLAGS="-I$ANDROID/include --sysroot=$ANDROID"
export CPPFLAGS="-I$ANDROID/include"
export LDFLAGS="-L$ANDROID/lib"

2. 编译openssl:

[plain] view plain
tar zxf openssl-1.0.1j.tar.gz
cd openssl-1.0.1j
mkdir dist

source common.sh
MACHINE=armv7 SYSTEM=android ./config -fPIC --prefix=./dist

# 在Makefile里做一些补丁,以防error
sed -i "s|-m64||" Makefile
sed -i "s|-Wall|-Wall --sysroot=$ANDROID|" Makefile

# 编译并安装
make
make install

3. 编译ncurses,readline,sqlite

仿照openssl的方法,编译另外三个库;其实还有一个zlib需要编译,当然后面不让python支持bz2就可以忽略。
注意readline编译最好选择--with-curses,然后把编译好的ncurses链接上。库类文件编译,尽量都加-fPIC,这是什么,不从汇编说还真说不清楚,还是大家自己去看官方文档吧。
对于localeconv的问题,大家最好改写下那个locale.h,在里面把localeconv的struct里fix放上你要的字符,比如decimal_point是".",这样后面都不会出这类locale的问题了。
这里给出快捷的解决方案就是把localeconv干掉,直接hardcode:

[plain] view plain
# 在ncurses编译之前,需要打的补丁
sed -i "s/#define isDecimalPoint(c) .*/#define isDecimalPoint(c) ((c) == '.')/" form/fty_num.c
sed -i "s/localeconv()/NULL/" form/fty_num.c

[plain] view plain
# 编译ncurses
./configure --prefix=/YourPath --disable-home-terminfo --without-ada
make
make install
[plain] view plain
# 编译readline
./configure --prefix=/YourPath --host=arm-linux --build=x86_64-linux \
--enable-static --enable-shared --with-curses
make
make install
[plain] view plain
# 编译sqlite
./configure --host=arm-linux --build=x86_64-linux
make
make install
4. 编译Python:
其实过程整体和openssl没有什么区别,细节上有一些注意事项。
- configure文件是需要手动fix的,打开文件,搜索 ac_cv_file__dev_ptmx 和 ac_cv_file__dev_ptc;删除对这两个变量的自动判断。手动去Android查看/dev文件夹里有没有ptmx和ptc设备,有就设置为yes没就no:

[plain] view plain
ac_cv_file__dev_ptmx=yes
ac_cv_file__dev_ptc=no

- 打开Moles/Setup.dist文件,把需要的python模块前面的#去掉,比如#_socket socketmole.c timemole.c,要python支持网络socket接口,需要把#去掉;建议尽量多加一些包;实在编译不过的包不要,有些模块需要额外下载开源软件库编译,就不只openssl,ncurses,readline,sqlite了。

这样就可以configure 了:

[plain] view plain
./configure --host=arm-unknown-linux-gnu --build=x86_64-unknown-linux-gnu \
--enable-ipv6

- 有一段编译会报错,仔细检查,发现python需要编译一个程序,这个程序跑在host上,但gcc是arm的,host linux是x86_64的,所以我们需要复制一份解压好的python代码,然后用本地原有的gcc编译;当然编译时直接./configure && make就可以了,直到Parser文件夹下出现了pgen这个可执行文件;把它拿出来,复制到另一个python源码的Parser文件夹中,修改Makefile:

[plain] view plain
sed -i "s|\$(PGEN):.*|\$(PGEN):|" Makefile
sed -i "s|\$(CC) \$(OPT) \$(LDFLAGS) \$(PGENOBJS) \$(LIBS) -o \$(PGEN)|echo \"fake Parser/pgen\"|" Makefile
- 解决locale的问题,还有一些常量问题,笨方法hardcode:

[plain] view plain
sed -i "s|.*localeconv().*||" Objects/stringlib/localeutil.h
sed -i "s|locale_data->grouping|\"\"|" Objects/stringlib/localeutil.h
sed -i "s|locale_data->thousands_sep|\"\"|" Objects/stringlib/localeutil.h
sed -i "s|.*localeconv().*||" Objects/stringlib/formatter.h
sed -i "s|locale_data->grouping|\"\"|" Objects/stringlib/formatter.h
sed -i "s|locale_data->thousands_sep|\"\"|" Objects/stringlib/formatter.h
sed -i "s|locale_data->decimal_point|\".\"|" Objects/stringlib/formatter.h
sed -i "s|.*localeconv().*||" Python/pystrtod.c
sed -i "s|locale_data->decimal_point|\".\"|" Python/pystrtod.c
sed -i "s|I_PUSH|0x5302|" Moles/posixmole.c
sed -i "s|p->pw_gecos|\"\"|" Moles/pwdmole.c

- Moles/socketmole.c: 需要去掉一些#if,不然头文件里没有定义,或者直接去$ANDROID的include文件夹把相应.h文件补充完整也可以。

[cpp] view plain
...
Py_BEGIN_ALLOW_THREADS
#ifdef USE_GETHOSTBYNAME_LOCK
PyThread_acquire_lock(netdb_lock, 1);
#endif
h = gethostbyaddr(ap, al, af);
Py_END_ALLOW_THREADS
ret = gethost_common(h, (struct sockaddr *)&addr, sizeof(addr), af);
#ifdef USE_GETHOSTBYNAME_LOCK
PyThread_release_lock(netdb_lock);
#endif
return ret;
...

make然后make -i install,好啦,python编译出来啦!

下面就是放到android上跑了。
需要Android是root的,不root也可以,就是得找个地方放。
需要把python编译好的文件夹打包放到android上,还有sqlite里的那个so文件。
root的话可以在/system/bin里软链接一个python。当然,sqlite.so.3要放在/system/lib里。
其实sqlite是可以不编译的,但是我们的Django需要它,所以还是弄出来吧,ssl也可以不用,但是为了服务器支持https,还是编译下吧。
这样就可以运行python了。

[html] view plain
# python
>>> 1+2
3
然后下载setuptools (https://pypi.python.org/pypi/setuptools/7.0) 和 pip (https://pypi.python.org/pypi/pip/1.5.6) 解压并安装:

[plain] view plain
gzip -d setuptools-7.0.tar.gz
tar xf setuptools-7.0.tar
cd setuptools-7.0
python setup.py build
python setup.py install

gzip -d pip-1.5.6.tar.gz
tar xf pip-1.5.6.tar
cd pip-1.5.6
python setup.py build
python setup.py install
把pip软链接到/system/bin。好了,python有了pip,哈哈,随心安装包吧。先来个pip install virtualenv
接下去可以安装django django-sslserver,把django-admin软链接到/system/bin,就可以写网站啦:

[plain] view plain
django-admin startproject test001
cd test001
python manage.py migrate
python manage.py runserver 0.0.0.0:8000
不安装django也可以直接对一个文件夹提供http服务:

[plain] view plain
python -m SimpleHTTPServer

有了server,在家庭里就可以搭建平台啦,如果有多个手机,连上wifi,就可以不用接线,完成无线分布式服务器,赶快练习loadbalance吧。

嗯嗯,看看需不需要用手机服务器随时监控家里的活动,然后插上SIM卡还能自动给我发短信,嘿嘿。

后面我们来想象怎么解决pip install有时需要编译c文件的问题。其实有团队已经解决了这个问题。
下载Droid for GCC plugin的apk:http://www.liqucn.com/rj/228351.shtml (这个不是官网,最好去google play下载)
把apk解压,然后找到gcc的压缩包,里面就有gcc了,把它放到Android上:

[plain] view plain
#include <stdio.h>
int main() {
printf("hello world!\n");
return 0;
}
然后gcc -o test test.c,并运行./test,完美输出hello world。赶紧软链接到/system/bin里吧。
好了,这样numpy都可以编译安装了。还可以编译下erl,把rabbitmq编译下,弄个分布式也不是问题。最好移植一下lxc,然后把raspberry里的arm版java搬过来就无敌啦。买个USBminiB转RJ45的头就可以插网线了。

总体来说,可以搭建移动服务器了,以后写一些网页版小应用,想用的时候android开个热点,电脑一连,开始enjoy!

❺ Windows 版本 Python 2.7.10 怎么安装bz2 这个模块。

你直接去pypi去下载bz2的包,然后解压并cd到解压目录,用Python setup.py install去安装,Python所有的包都这么安最方便快捷。如果是windows系统,安装时需要依赖包的话,缺什么就下什么,然后一洋的方式安装,Ubuntu会直接下载依赖。

❻ python 如何导入bz2模块 ubuntu

bz2是python自带的标准库,直接import就可以了,不过你既然提问了,应该是遇到问题了。
如果python是你自己编译的,需要安装bzip2-devel后再编译,否着bz2无法使用。

如果解决了您的问题请采纳!
如果未解决请继续追问

❼ linux安装python环境

放到自己准备好的文件夹
2.解压
命令: # tar -zxvf Python-3.8.5.tgz

解压到准备好的文件内
3.进入解压后的目录,编译安装。
cd Python-3.8.5
./configure --prefix=/usr/local/python3
可能会See config.log' for more details出现See config.log' for more details错误,需要安装gcc环境
命令: yum install -y gcc

4.安装:
安装依赖环境:
首先: sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
然后: make
最后: make install
完成 make install实际上是把生成的执行文件拷贝到之前configure命令指定的目录/usr/local/python3下。
到这里安装已经结束

5.创建软链接
ln -s /usr/tools/Python3/bin/python3 /usr/tools/python3

6.加入环境变量:
vim /etc/profile
增加: export PATH=$PATH:/usr/tools/Python/bin
:wq 退出
source /etc/profile

总结:完成上面的步骤,就完成了python在linux环境的配置。基础知识只能满足你60%的学习需求,剩下的40%就要在实战中补足,我要做的就是补充你剩下的40%。OK,这次分享就到这里了,有什么疑问可以随时留言沟通,互相学习进步!
欢迎加入QQ群:547349021
小提示:群名虽然叫selenium+unittest,但是我们不限任何测试领域的沟通交流和学习,让我们一起补足缺失的40%吧!

❽ CentOS+nginx+uwsgi+Python 多站点环境搭建

转自 Xiongpq

http://www.cnblogs.com/xiongpq/p/3381069.html

略有补充(可能出现错误及解决办法)

环境:

CentOS X64 6.4

nginx 1.5.6

Python 2.7.5

正文:

一:安装需要的类库及Python2.7.5

安装必要的开发包

yum groupinstall "Development tools"

yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

CentOS 自带Python2.6.6,但我们可以再安装Python2.7.5:

cd ~

wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2

tar xvf Python-2.7.5.tar.bz2

cd Python-2.7.5

./configure --prefix=/usr/local

make && make altinstall

安装完毕后,可是使用”python2.7”命令进入python2.7的环境。

二:安装Python包管理

easy_install包 https://pypi.python.org/pypi/distribute

方便安装Python的开发包

cd ~

wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz

tar xf distribute-0.6.49.tar.gz

cd distribute-0.6.49python2.7 setup.py install

easy_install --version

红色部分必须是“python2.7”,否则将安装到默认的2.6环境内。

pip包 https://pypi.python.org/pypi/pip

安装pip的好处是可以pip list、pip uninstall 管理Python包, easy_install没有这个功能,只有uninstall

easy_install pip

pip --version

三:安装uwsgi

uwsgi: https://pypi.python.org/pypi/uWSGI

uwsgi参数详解: http://uwsgi-docs.readthedocs.org/en/latest/Options.html

pip install uwsgi

uwsgi --version

测试uwsgi是否正常:

新建test.py文件,内容如下:

def application(env, start_response):

start_response('200 OK', [('Content-Type','text/html')])

return "Hello World"

然后在终端运行:

uwsgi --http :8001 --wsgi-file test.py

在浏览器内输入: http://你购买的云主机公网ip:8001 ,看是否有“Hello World”输出,若没有输出,请检查你的安装过程。

四:安装django

pip install django

测试django是否正常,运行:

django-admin.py startproject demosite

cd demositepython2.7 manage.py runserver 0.0.0.0:8002

在浏览器内输入: http://1 你购买的云主机公网 :8002,检查django是否运行正常。

五:安装nginx

cd ~

wget http://nginx.org/download/nginx-1.5.6.tar.gz

tar xf nginx-1.5.6.tar.gz

cd nginx-1.5.6

./configure --prefix=/usr/local/nginx-1.5.6 \

--with-http_stub_status_mole \

--with-http_gzip_static_mole

make && make install

安装Nginx时报错

错误提示:

./configure: error: the HTTP rewrite mole requires the PCRE library.

安装pcre-devel与openssl-devel解决问题

yum -y install pcre-devel openssl openssl-devel

./configure --prefix=/usr/local/nginx

make

make install

六:配置uwsgi

uwsgi支持ini、xml等多种配置方式,但个人感觉ini更方便:

在/ect/目录下新建uwsgi9090.ini,添加如下配置:

[uwsgi]

socket =

master = true         //主进程

vhost = true          //多站模式

no-stie = true        //多站模式时不设置入口模块和文件

workers = 2           //子进程数

reload-mercy = 10

vacuum = true         //退出、重启时清理文件

max-requests = 1000

limit-as = 512

buffer-sizi = 30000

pidfile = /var/run/uwsgi9090.pid    //pid文件,用于下面的脚本启动、停止该进程

daemonize = /website/uwsgi9090.log

设置uwsgi开机启动,在/etc/init.d/目录下新建uwsgi9090文件,内容如下:

uwsgi9090

#! /bin/sh

# chkconfig: 2345 55 25

# Description: Startup script for uwsgi webserver on Debian. Place in /etc/init.d and

# run 'update-rc.d -f uwsgi defaults', or use the appropriate command on your

# distro. For CentOS/Redhat run: 'chkconfig --add uwsgi'

### BEGIN INIT INFO

# Provides:          uwsgi

# Required-Start:    $all

# Required-Stop:     $all

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: starts the uwsgi web server

# Description:       starts uwsgi using start-stop-daemon

### END INIT INFO

# Author:   licess

# website:  http://lnmp.org

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

DESC="uwsgi daemon"

NAME=uwsgi9090

DAEMON=/usr/local/bin/uwsgi

CONFIGFILE=/etc/$NAME.ini

PIDFILE=/var/run/$NAME.pid

SCRIPTNAME=/etc/init.d/$NAME

set -e

[ -x "$DAEMON" ] || exit 0

do_start() {

$DAEMON $CONFIGFILE || echo -n "uwsgi already running"

}

do_stop() {

$DAEMON --stop $PIDFILE || echo -n "uwsgi not running"

rm -f $PIDFILE

echo "$DAEMON STOPED."

}

do_reload() {

$DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload"

}

do_status() {

ps aux|grep $DAEMON

}

case "$1" in

status)

echo -en "Status $NAME: \n"

do_status

;;

start)

echo -en "Starting $NAME: \n"

do_start

;;

stop)

echo -en "Stopping $NAME: \n"

do_stop

;;

reload|graceful)

echo -en "Reloading $NAME: \n"

do_reload

;;

*)

echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2

exit 3

;;

esac

exit 0

uwsgi9090

然后在终端执行:

-- 添加服务

chkconfig --add uwsgi9090

-- 设置开机启动

chkconfig uwsgi9090 on

七:设置nginx

找到nginx的安装目录/usr/local/nginx,打开conf/nginx.conf文件,修改server配置

server {

listen       80;

server_name  localhost;

location / {

include  uwsgi_params;

uwsgi_pass  ;              //必须和uwsgi中的设置一致

index  index.html index.htm;

client_max_body_size 35m;

}

}

注意 :安装django这步中startproject的demosite路径,需要和nginx.conf中 uwsgi_param UWSGI_CHDIR /demosite;对应上。

设置nginx开机启动,在/etc/init.d/目录下新建nginx文件,内容如下:

nginx

#!/bin/sh

#

# nginx - this script starts and stops the nginx daemon

#

# chkconfig:   - 85 15

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \

#               proxy and IMAP/POP3 proxy server

# processname: nginx

# config:      /usr/local/nginx/conf/nginx.conf

# pidfile:     /var/run/nginx.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/opt/nginx-1.5.6/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/opt/nginx-1.5.6/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

start() {

[ -x $nginx ] || exit 5

[ -f $NGINX_CONF_FILE ] || exit 6

echo -n $"Starting $prog: "

daemon $nginx -c $NGINX_CONF_FILE

retval=$?

echo

[ $retval -eq 0 ] && touch $lockfile

return $retval

}

stop() {

echo -n $"Stopping $prog: "

killproc $prog -QUIT

retval=$?

echo

[ $retval -eq 0 ] && rm -f $lockfile

return $retval

}

restart() {

configtest || return $?

stop

sleep 1

start

}

reload() {

configtest || return $?

echo -n $"Reloading $prog: "

killproc $nginx -HUP

RETVAL=$?

echo

}

force_reload() {

restart

}

configtest() {

$nginx -t -c $NGINX_CONF_FILE

}

rh_status() {

status $prog

}

rh_status_q() {

rh_status >/dev/null 2>&1

}

case "$1" in

start)

rh_status_q && exit 0

$1

;;

stop)

rh_status_q || exit 0

$1

;;

restart|configtest)

$1

;;

reload)

rh_status_q || exit 7

$1

;;

force-reload)

force_reload

;;

status)

rh_status

;;

condrestart|try-restart)

rh_status_q || exit 0

;;

*)

echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

exit 2

esac

nginx

然后在终端执行:

-- 添加服务

chkconfig --add nginx

-- 设置开机启动

chkconfig nginx on

八:测试

OK,一切配置完毕,在终端运行

service uwsgi9090 start

service nginx start

错误1:

[root@VM_23_251_centos nginx-1.5.6]# service uwsgi9090 start

env: /etc/init.d/uwsgi9090: Permission denied

[root@VM_23_251_centos nginx-1.5.6]# service nginx start

env: /etc/init.d/nginx: Permission denied

解决办法1:把可执行勾选上

错误2:

[root@VM_23_251_centos ~]# sudo service nginx start

env: /etc/init.d/nginx: No such file or directory

解决办法1:

Be careful what text editors you use on your local Windows computer. Some create Windows-style line endings (\r\n, CR-LF), which cause problems like this on Unix-like systems such as Linux or Mac OS X.

If you use such an editor, adjust its settings so that it creates files with Unix-style line endings. If the editor has no such setting, you should not be using it at all.

文本格式由windows 改为unix版

错误3:

*** WARNING: Can't find section "uwsgi" in INI configuration file /etc/uwsgi9090.ini ***

解决办法3:

在浏览器输入: http:// 云主机公网ip,恭喜你可以看到django的“It work”了~

九:多站配置

我采用运行多个uwsgi服务的方法来实现多个站点。

重复第六步,创建uwsgi9091.ini,并相应修改文件中的

socket = 127.0.0.1:9091

pidfile = /var/run/uwsgi9091.pid

daemonize = /website/uwsgi9091.log

并创建服务uwsgi9091,设置开机启动。

然后修改nginx的配置文件为:

nginx

然后我们就可以通过 http://127.0.0.1:1300 来访问新的网站了。

十:其他配置

防火墙设置

CentOS默认关闭外部对80、3306等端口的访问,所以要在其他计算机访问这台服务器,就必须修改防火墙配置,打开/etc/sysconfig/iptables

在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

-A INPUT -m state --state NEW -m tcp -p -dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT

然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

service iptables restart

安装Mysqldb

yum -y install mysql-develeasy_install-2.7 MySQL-python

注意红色部分,easy_install-2.7,否则它将默认安装到Python2.6环境内。

------------------------------------------------------------------------------------------------------------------

2014年12月02日添加:

CentOS 7中默认使用Firewalld做防火墙,所以修改iptables后,在重启系统后,根本不管用。

Firewalld中添加端口方法如下:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

❾ python 读取CSV 文件

读取一个CSV 文件

最全的

一个简化版本

filepath_or_buffer : str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handle or StringIO)

可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中

本地文件读取实例:://localhost/path/to/table.csv

**sep **: str, default ‘,’

指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:' '

**delimiter **: str, default None

定界符,备选分隔符(如果指定该参数,则sep参数失效)

delim_whitespace : boolean, default False.

指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep='s+'。如果这个参数设定为Ture那么delimiter 参数失效。

在新版本0.18.1支持

header : int or list of ints, default ‘infer’

指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0,否则设置为None。如果明确设定header=0 就会替换掉原来存在列名。header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉。

注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。

**names **: array-like, default None

用于结果的列名列表,如果数据文件中没有列标题行,就需要执行header=None。默认列表中不能出现重复,除非设定参数mangle_pe_cols=True。

index_col : int or sequence or False, default None

用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。

如果文件不规则,行尾有分隔符,则可以设定index_col=False 来是的pandas不适用第一列作为行索引。

usecols : array-like, default None

返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗。

as_recarray : boolean, default False

不赞成使用:该参数会在未来版本移除。请使用pd.read_csv(...).to_records()替代。

返回一个Numpy的recarray来替代DataFrame。如果该参数设定为True。将会优先squeeze参数使用。并且行索引将不再可用,索引列也将被忽略。

**squeeze **: boolean, default False

如果文件值包含一列,则返回一个Series

**prefix **: str, default None

在没有列标题时,给列添加前缀。例如:添加‘X’ 成为 X0, X1, ...

**mangle_pe_cols **: boolean, default True

重复的列,将‘X’...’X’表示为‘X.0’...’X.N’。如果设定为false则会将所有重名列覆盖。

dtype : Type name or dict of column -> type, default None

每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}

**engine **: {‘c’, ‘python’}, optional

Parser engine to use. The C engine is faster while the python engine is currently more feature-complete.

使用的分析引擎。可以选择C或者是python。C引擎快但是Python引擎功能更加完备。

converters : dict, default None

列转换函数的字典。key可以是列名或者列的序号。

true_values : list, default None

Values to consider as True

false_values : list, default None

Values to consider as False

**skipinitialspace **: boolean, default False

忽略分隔符后的空白(默认为False,即不忽略).

skiprows : list-like or integer, default None

需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。

skipfooter : int, default 0

从文件尾部开始忽略。 (c引擎不支持)

skip_footer : int, default 0

不推荐使用:建议使用skipfooter ,功能一样。

nrows : int, default None

需要读取的行数(从文件头开始算起)。

na_values : scalar, str, list-like, or dict, default None

一组用于替换NA/NaN的值。如果传参,需要制定特定列的空值。默认为‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘nan’`.

**keep_default_na **: bool, default True

如果指定na_values参数,并且keep_default_na=False,那么默认的NaN将被覆盖,否则添加。

**na_filter **: boolean, default True

是否检查丢失值(空字符串或者是空值)。对于大文件来说数据集中没有空值,设定na_filter=False可以提升读取速度。

verbose : boolean, default False

是否打印各种解析器的输出信息,例如:“非数值列中缺失值的数量”等。

skip_blank_lines : boolean, default True

如果为True,则跳过空行;否则记为NaN。

**parse_dates **: boolean or list of ints or names or list of lists or dict, default False

infer_datetime_format : boolean, default False

如果设定为True并且parse_dates 可用,那么pandas将尝试转换为日期类型,如果可以转换,转换方法并解析。在某些情况下会快5~10倍。

**keep_date_col **: boolean, default False

如果连接多列解析日期,则保持参与连接的列。默认为False。

date_parser : function, default None

用于解析日期的函数,默认使用dateutil.parser.parser来做转换。Pandas尝试使用三种不同的方式解析,如果遇到问题则使用下一种方式。

1.使用一个或者多个arrays(由parse_dates指定)作为参数;

2.连接指定多列字符串作为一个列作为参数;

3.每行调用一次date_parser函数来解析一个或者多个字符串(由parse_dates指定)作为参数。

**dayfirst **: boolean, default False

DD/MM格式的日期类型

**iterator **: boolean, default False

返回一个TextFileReader 对象,以便逐块处理文件。

chunksize : int, default None

文件块的大小, See IO Tools docs for more information on iterator and chunksize.

compression : {‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}, default ‘infer’

直接使用磁盘上的压缩文件。如果使用infer参数,则使用 gzip, bz2, zip或者解压文件名中以‘.gz’, ‘.bz2’, ‘.zip’, or ‘xz’这些为后缀的文件,否则不解压。如果使用zip,那么ZIP包中国必须只包含一个文件。设置为None则不解压。

新版本0.18.1版本支持zip和xz解压

thousands : str, default None

千分位分割符,如“,”或者“."

decimal : str, default ‘.’

字符中的小数点 (例如:欧洲数据使用’,‘).

float_precision : string, default None

Specifies which converter the C engine should use for floating-point values. The options are None for the ordinary converter, high for the high-precision converter, and round_trip for the round-trip converter.

指定

**lineterminator **: str (length 1), default None

行分割符,只在C解析器下使用。

**quotechar **: str (length 1), optional

引号,用作标识开始和解释的字符,引号内的分割符将被忽略。

quoting : int or csv.QUOTE_* instance, default 0

控制csv中的引号常量。可选 QUOTE_MINIMAL (0), QUOTE_ALL (1), QUOTE_NONNUMERIC (2) or QUOTE_NONE (3)

doublequote : boolean, default True

双引号,当单引号已经被定义,并且quoting 参数不是QUOTE_NONE的时候,使用双引号表示引号内的元素作为一个元素使用。

escapechar : str (length 1), default None

当quoting 为QUOTE_NONE时,指定一个字符使的不受分隔符限值。

comment : str, default None

标识着多余的行不被解析。如果该字符出现在行首,这一行将被全部忽略。这个参数只能是一个字符,空行(就像skip_blank_lines=True)注释行被header和skiprows忽略一样。例如如果指定comment='#' 解析‘#empty a,b,c 1,2,3’ 以header=0 那么返回结果将是以’a,b,c'作为header。

encoding : str, default None

指定字符集类型,通常指定为'utf-8'. List of Python standard encodings

dialect : str or csv.Dialect instance, default None

如果没有指定特定的语言,如果sep大于一个字符则忽略。具体查看csv.Dialect 文档

tupleize_cols : boolean, default False

Leave a list of tuples on columns as is (default is to convert to a Multi Index on the columns)

error_bad_lines : boolean, default True

如果一行包含太多的列,那么默认不会返回DataFrame ,如果设置成false,那么会将改行剔除(只能在C解析器下使用)。

warn_bad_lines : boolean, default True

如果error_bad_lines =False,并且warn_bad_lines =True 那么所有的“bad lines”将会被输出(只能在C解析器下使用)。

**low_memory **: boolean, default True

分块加载到内存,再低内存消耗中解析。但是可能出现类型混淆。确保类型不被混淆需要设置为False。或者使用dtype 参数指定类型。注意使用chunksize 或者iterator 参数分块读入会将整个文件读入到一个Dataframe,而忽略类型(只能在C解析器中有效)

**buffer_lines **: int, default None

不推荐使用,这个参数将会在未来版本移除,因为他的值在解析器中不推荐使用

compact_ints : boolean, default False

不推荐使用,这个参数将会在未来版本移除

如果设置compact_ints=True ,那么任何有整数类型构成的列将被按照最小的整数类型存储,是否有符号将取决于use_unsigned 参数

use_unsigned : boolean, default False

不推荐使用:这个参数将会在未来版本移除

如果整数列被压缩(i.e. compact_ints=True),指定被压缩的列是有符号还是无符号的。

memory_map : boolean, default False

如果使用的文件在内存内,那么直接map文件使用。使用这种方式可以避免文件再次进行IO操作。

ref:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

热点内容
php办公系统 发布:2025-07-19 03:06:35 浏览:894
奥德赛买什么配置出去改装 发布:2025-07-19 02:53:18 浏览:37
请与网络管理员联系请求访问权限 发布:2025-07-19 02:37:34 浏览:183
ipad上b站缓存视频怎么下载 发布:2025-07-19 02:32:17 浏览:839
phpcgi与phpfpm 发布:2025-07-19 02:05:19 浏览:522
捷达方向机安全登录密码是多少 发布:2025-07-19 00:57:37 浏览:689
夜魔迅雷下载ftp 发布:2025-07-19 00:39:29 浏览:96
增值税票安全接入服务器地址 发布:2025-07-19 00:20:45 浏览:482
solidworkspcb服务器地址 发布:2025-07-18 22:50:35 浏览:820
怎么在堆叠交换机里配置vlan 发布:2025-07-18 22:42:35 浏览:627