python httpsevermanage.py runsever可以正常运行,加上阿里云ip后之后显示 this Ip address can't be assigned to

最近写后台业务逻辑,要用到获取本机ip地址的方法,记录两个python的实现方式:
import socket
import struct
import fcntl
import commands
def getLocalIP():
status,output=commands.
最近写后台业务逻辑,要用到获取本机ip地址的方法,记录两个python的实现方式:
import socket
import struct
import fcntl
import commands
def getLocalIP():
status,output=commands.getstatusoutput("hostname -i")
if status :
return '127.0.0.1'
return output
def getip(ethname):
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0X8915, struct.pack('256s', ethname[:15]))[20:24])
if __name__=='__main__':
print "getip :" , getip('eth0')
print "getLocalIP :", getLocalIP()
注意 本案例中 我写的是 eth0 ,
如果是生产环境做了网卡绑定的话 需要使用 getip(bond0)
[yangyidba@rac3 10:31:12 ~]
$ python getip.py
: 10.10.15.12
getLocalIP : 10.10.15.12
还有shell 的实现方式, 可以使用 以下shell 方式 替代python 实现中的
hostname -i :
host `hostname --fqdn` 2&/dev/null | awk '{print $NF}'
10.10.15.12
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
10.10.15.12
ifconfig|grep -v "127.0.0.1" | sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'
10.10.15.12
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至: 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】浅析混合云和跨地域网络构建实践,分享高性能负载均衡设计,9月21日阿里云专家和你说说网络那些事儿,足不出户看直播,赶紧预约吧!&&
针对互联网服务器(包括非阿里云主机)在遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务,用户...
NAT网关(NAT Gateway)是一款企业级的高性能VPC公网网关,提供SNAT、DNAT等NAT代理转发方...
主机市场占用率第一,20年专业品质保证
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
MaxCompute75折抢购
Loading...Python(3)
Linux(9)
主要内容:ubuntu下 Django + MySQL + nginx + uwsgi
操作系统环境:ubuntu 14.04
一、相关软件安装:
首先升级apt-get : sudo apt-get update
Linux系统自带python 主要使用的是python 2.7.6版本
python的相关目录:/usr/bin/python 2.7.6& 或& /usr/bin/python3.4
install MySQL: sudo apt-get install mysql-server mysql-client
installMySQLdb: sudo apt-get install python-mysqldb
install Nginx: sudo apt-get install nginx
install python-dev:sudo apt-get install python-dev
install uwsgi: pip install uwsgi
install Django:
&&&&&&&&&&&&&&&&&&&& sudo& apt-get install python-pip
&&&&&&&&&&&&&&&&&&&& pip install django == 1.xx(我用的是1.8)
二、其原理为:
the web client& the web server(nginx)& the socket&
uwsgi & Django
1.便捷的配置:在项目的个目录下建立mysite_nginx.conf配置文件
# mysite_nginx.conf
# the upstream component nginx needs to connect to
upstream django {
server unix:///path/to/yourproject/mysite. # for a file socket
#server 127.0.0.1:8001; # for a web port socket (we'll use this first)
# configuration of the server
# the port your site will be served on
# the domain name it will serve for
server_; # substitute your machine's IP address or FQDN
# max upload size
client_max_body_size 75M;
# adjust to taste
# Django media
location /media
alias /path/to/yourproject/
# your Django project's media files - amend as required
location /static {
alias /path/to/yourproject/ # your Django project's static files - amend as required
# Finally, send all non-media requests to the Django server.
location / {
/path/to/yourproject/uwsgi_ # the uwsgi_params file you installed
}其中uwsgi_params文件,你需要从/etc/nginx/uwsgi_params拷贝到你项目的根目录下。
在mysite/yourproject/settings.py中的APPS中添加创建的app应用,配置DATABASES数据库,
在静态文件部分添加静态文件的根目录:
STATIC_ROOT = os.path.join(BASE_DIR, &static/&)
在manage.py目录下使用python manage.py collectstatic收集静态文件
创建media目录用于存放媒体文件。
为了防止权限不够,无法访问相关文件,我在nginx.conf中更改用户权限:
然后我们继续在项目的根目录下创建uwsgi.ini文件:
#uwsgi.ini file
# Django-related settings
# the base directory (full path)
= /path/to/yourproject/
# Django's wsgi file
= mysite.wsgi
# the virtualenv (full path)
= /path/to/virtualenv
# process-related settings
# maximum number of worker processes
# the socket (use the full path to be safe
= /path/to/yourproject/mysite.sock
# ... with appropriate permissions - may be needed
#chmod-socket
# clear environment on exit
将mysite_nginx.conf文件在/etc/nginx/sites-enabled/下建立连接文件
ln -s /path/to/yourproject/mysite_nginx.conf /etc/nginx/sites-enabled/顺便删除/etc/nginx/sites-enabled下面的default文件,如果你想再次导入default文件
可以在/etc/nginx/sites-available/文件下找到。
随后运行:
uwsgi --ini uwsgi.ini
成功后编辑/etc/rc.local文件,可以使uwsgi在开机时自动启动
/usr/local/bin/uwsgi --socket /path/to/mysite.sock --module /path/to/mysite.wsgi
&span style=&font-family:Microsoft YaH&&#&/span&我没用&span style=&font-family:Microsoft YaH&&该权限&/span&命令--chmod-socket=666
若以上有问题参考以下博客
主要参考网站:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8037次
排名:千里之外
原创:19篇
(6)(4)(8)(3)(2)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'1533人阅读
python(83)
运行django的服务器时(执行python manage.py runserver 8000 ),提示如下:
首先上网查了下10013错误码是因为端口被占用导致,那么就要查看下目前系统端口占用情况,如下:
1.在cmd窗口运行netstat -ano,出现所有活动连接,太难查,于是,进入第二步:
2.运行netstat -ano | findstr &8000&,进行查找包含8000的活动连接,出现的结果中,最后一列是进程id,如下:
于是找到了,是pid为4040的进程占用了8000端口,接着进入第三步,找出到底是什么程序:
3.运行tasklist | findstr &4040&
好吧,找到了酷狗的程序,原来酷狗用的是8000.。。换豆瓣听歌。。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:245649次
积分:3165
积分:3165
排名:第11203名
原创:59篇
转载:109篇
评论:18条
(1)(6)(4)(6)(5)(13)(51)(2)(3)(6)(5)(2)(4)(1)(5)(3)(5)(6)(5)(5)(1)(16)(3)(6)(1)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'CentOS 6 安装 Python3.5以及配置Django - 简书
CentOS 6 安装 Python3.5以及配置Django
安装python3.5
安装步骤如下 :1 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件)
yum groupinstall 'Development Tools'
yum install zlib-devel bzip2-devel
openssl-devel ncurses-devel
2 下载 Python3.5代码包
https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tar.xz
Python-3.5.0.tar.xz
cd Python-3.5.0
./configure --prefix=/usr/local/python3
make && make install
4 设置环境变量
echo 'export PATH=$PATH:/usr/local/python3/bin' && ~/.bashrc
5 或者可以直接替换python2
/usr/bin/python
/usr/local/bin/python3.5 /usr/bin/python
这样做的目的是在系统任意目录敲入python调用的是python3的命令,而非系统默认2.6.6的
但是这样同时这会导致依赖python2.6的yum不能使用,因此还要修改yum配置。
6 更新yum配置。
ll /usr/bin | grep python
这时/usr/bin目录下面是包含以下几个文件的(ll |grep python),其中有个python2.6,只需要指定yum配置的python指向这里即可
vim /usr/bin/yum
通过vim修改yum的配置
#!/usr/bin/python改为#!/usr/bin/python2.6,保存退出。
完成了python3的安装。
pip是根据官网wiki安装的,地址。1,安装setuptools。pip安装前需要先安装setuptools,在上面的页面中给出了下载地址。下载并执行即可:
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python ez_setup.py
2 我用上面的方法没有成功,网上找到了这个:先下载get-pip.py,
If [setuptools](https://pypi.python.org/pypi/setuptools) is not already installed, get-pip.py will install [setuptools](https://pypi.python.org/pypi/setuptools) for you.
Beginning with pip v1.5.1, get-pip.py stopped requiring setuptools to be installed first.
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip安装后执行pip依然无法找到命令,细看pip安装的提示信息发现安装到了python3下面,这里肯定不是系统的classpath目录。如下:
Installing pip3 script to /var/python3/bin
Installing pip3.3 script to /var/python3/bin
Installing pip script to /var/python3/binSuccessfully installed pip
解决办法就是简单地建立连接到系统的classpath目录之一: mv /usr/bin/pip /tmp ln -sv /usr/local/python3/bin/pip /usr/bin/pip3,按照pip的说法,最后执行
To upgrade an existing [setuptools](https://pypi.python.org/pypi/setuptools)run
pip install -U setuptools
悲剧没成功。。。
执行并根据提示一路next,安装完成后执行git --help测试是否安装成功。需要说明git的安装不是必须的(最终我也没用,因为在国内呵呵),除非你希望始终保持最新发布的django代码,否则可以忽略。
yum install git
安装django
有了pip,这件事变得非常简单,只需要一个命令即可。需要说明的是和上面的问题一样,你需要在系统classpath目录下建立到django-admin.py的连接。
pip install django
ln -s /var/python3/lib/python3.3/site-packages/django/bin/django-admin.py
/usr/bin/django-admin.py
#这里视你的django安装位置而定——一般是python的site-packages下。
如果pip没法执行,直接去官方下载Django最新版,编译安装。它会安装在你的python3目录里面,所以需要配置环境变量。
执行后django安装完成。下面建立一个演示的website,参考来自django的,通过执行命令
django-admin.py startproject mysite
建立一个名为mysite的工程其结构如下:
__init__.py
settings.py
外层mysite:仅仅是工程的容器,叫什么名字没关系。
manage.py:一个命令行的工具类用于和你的工程交互。
内层mysite:实际的python package。
__init__.py:空文件,它的存在是为了表明这是一个python package。
settings.py: Django的配置文件。
urls.py:简单的说就是用于url派发的配置。
wsgi.py: 用于和wsgi server连接的接入点,商用部署时用到的server。
到现在django的安装和工程已经建立,可以启动django开发的服务器了。django警告这个内置的server只适合开发用而非商用是没有安全保护的。执行以下命令启动django:
python manage.py runserver
这时候如果你是直接在linux主机上访问的那么已经可以通过localhost:8000来访问了,如果和我一样通过vmvare启动的linux并想在自己的物理机上访问暂时是行不通的。可以通过命令
python manage.py runserver 0.0.0.0:8000
使django server监听public ip以便从外面访问
修复python2
如果不小心误删除了/usr/bin/python2这个文件,导致yum不能使用。解决办法——重装相关的rpm文件。所有的rpm文件可以在网易提供的景象中下载,应该是国内比较快的地方了,地址:。rpm列表如下:python-2.6.6-29.el6.x86_64.rpmpython-devel-2.6.6-29.el6.x86_64.rpmpython-iniparse-0.3.1-2.1.el6.noarch.rpmpython-setuptools-0.6.10-3.el6.noarch.rpmpython-urlgrabber-3.9.1-8.el6.noarch.rpmrpm-python-4.8.0-19.el6.x86_64.rpmyum-3.2.29-22.el6.centos.noarch.rpmyum-metadata-parser-1.1.2-16.el6.x86_64.rpmpython-pycurl-7.19.0-8.el6.x86_64.rpm
注意rpm命令,必须要追加 –replacepkgs 参数,强制其重新安装,否则rpm会报告说package已安装。
rpm -Uvh --replacepkgs ***.rpm
至此打完收工:)

我要回帖

更多关于 python sql sever 的文章

 

随机推荐