windows和linux中搭建python集成开发环境IDE——如何设置多个python环境
本系列分为两篇:
1、【转】windows和linux中搭建python集成开发环境IDE
2、【转】linux和windows下安装python集成开发环境及其python包
3、windows和linux中搭建python集成开发环境IDE——如何设置多个python环境
Install Python packages on Ubuntu 14.04
from chris' sandbox
In this post I will document my setup of Python 2.7.6 in Ubuntu 14.04. Of course, the base Python is installed by default, both Python 2.7.6 and Python 3.4. Try the following in the terminal:
$ python --version
Python 2.7.6
$ python2 --version
Python 2.7.6
$ python3 --version
Python 3.4.0
As you can see, using python points to Python 2.7.6 by default. However, python2 and python3 can be used to access the desired version. I will focus on installing packages for Python 2.7.6 here.
Strategy
In the past I have installed Python packages:
- Using the Ubuntu repository:
$ sudo apt-get install packagename
- Or, from a git/svn repository:
$ sudo python setup.py install
Approach 1 has many advantages for Python users that don’t need to have the latest versions of every package. In particular, all of the package dependencies including other Python packages, linear algebra libraries, etc. are also installed automatically. As a result, if you are new to Ubuntu and Python, strategy 1 is the way to go.
I will take a different tact, using pip to install, upgrade, and remove packages. Also, I will install all Python packages as a user, that is, no use of sudo. This makes it easy to use the same install procedure on a machine where I don’t have sudo privileges–say an Ubuntu cluster. However, I will need sudo to install non-Python libraries, Fortran compilers, etc. that the Python packages employ. On a cluster, the SysAdmin would have to to do this part for me and other users.
–start edit: 2015, June 1st –
Recently use of pip on Ubuntu 14.04 has started to issue a warning that ends with InsecurePlatformWarning. After some searching around, I’ve found that this is related to SSL and the urllib3 in Python 2.7.6, the version on Ubuntu 14.04– see here if you want the details. As suggested in the discussion linked above, this can be fixed with the following installs (I’ll use the –user switch, as in the examples below)
$ pip install --user pyopenssl ndg-httpsclient pyasn1
With that we’re secured and the warnings go away. If you are just starting out, try installing pip, as below, and return to this install if use of pip gives you warnings.
–end edit: 2015, June 1st –
pip
Of course, the starting point is to get pip installed. Official instructions are also available for installing pip. pip depends on setuptools, but we can install both using the get-pip.py script, as described at the install link. To be concrete, I did the following:
$ cd ~/Downloads
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py --user
If you don’t have curl installed, this can be remedied using:
$ sudo apt-get install curl
Because we have chosen local installation, the path ~/.local/bin has to be added to our path. To do that, add the following to the end of your ~/.bashrc file:
# include .local/bin for local python scripts
export PATH=~/.local/bin:$PATH
Then, source ~/.bashrc:
$ source ~/.bashrc
Try the following to see if you get similar results and to make sure the basic setup is working:
$ which pip
/home/cstrelioff/.local/bin/pip
$ pip --version
pip 1.5.6 from /home/cstrelioff/.local/lib/python2.7/site-packages (python 2.7)
Of course, your username should be in the path, but the output should look something like the above.
virtualenv
Another major tool for Python 2.7 project management is virtualenv. This package allows the user to create many virtual Python environments, with different packages installed, and to activate anddeactive these environments whenever the user desires. This is extremely useful for developers who want to create a minimal environment for their application.
The virtualenv installation is simple with pip (again, I’m doing a user install with no sudo):
$ pip install --user virtualenv
To test it out, see if you get something like the following:
$ virtualenv --version
1.11.6
$ pip show virtualenv
---
Name: virtualenv
Version: 1.11.6
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
Now that virtualenv is installed, there will be two paths forward for the rest of the Python installs:
- Keep installing as a user – I’ll use this approach for the reasons discussed above.
- If you have admin permissions you can install all packages globally using a command like:
$ sudo pip install packagename
- Create a virtual environment and install everything there to have a completely isolated Python environment – see virtualenv and virtualenvwrapper on Ubuntu 14.04 for an example of how to take this approach.
Ubuntu dependencies
A variety of Ubuntu-specific packages are needed by Python packages. These are libraries, compilers, fonts, etc. I’ll detail these here along with install commands. Depending on what you want to install you might not need all of these.
- General development/build:
$ sudo apt-get install build-essential python-dev
- Compilers/code integration:
$ sudo apt-get install gfortran
$ sudo apt-get install swig
- Numerical/algebra packages:
$ sudo apt-get install libatlas-dev
$ sudo apt-get install liblapack-dev
- Fonts (for matplotlib)
$ sudo apt-get install libfreetype6 libfreetype6-dev
- More fonts (for matplotlib on Ubuntu Server 14.04– see comment at end of post) – added 2015/03/06
$ sudo apt-get install libxft-dev
- Graphviz for pygraphviz, networkx, etc.
$ sudo apt-get install graphviz libgraphviz-dev
- IPython require pandoc for document conversions, printing, etc.
$ sudo apt-get install pandoc
- Tinkerer dependencies
$ sudo apt-get install libxml2-dev libxslt-dev zlib1g-dev
That’s it, now we start installing the Python packages.
numpy
numpy is one of the fundamental numerical packages in Python. To install using pip type:
$ pip install --user numpy
This will result in a fair amount of compiling followed by a note that the package was successfully installed. If not, make a note of the error. Often this results from not having libraries and/or compilers installed (see above).
Information about the installation location and the version can be obtained with the following:
$ pip show numpy
---
Name: numpy
Version: 1.8.1
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
You should also be able to start python at the terminal and importnumpy without complaint:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> print np.__version__
1.8.1
>>> exit()
scipy
scipy has many useful mathematical utilities, complementing numpy. Installation is accomplished with:
$ pip install --user scipy
Again, expect lots of compiling! As with numpy, try:
$ pip show scipy
---
Name: scipy
Version: 0.14.0
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
and, loading python:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>> print scipy.__version__
0.14.0
>>> exit()
matplotlib
matplotlib is one of the main plotting packages for Python and many other packages use the utilities. Install with:
$ pip install --user matplotlib matplotlib复杂一点,可能直接上面的操作会失败:需要先安装其依赖的包libpng和freetype,根据提示缺啥就补安装啥即可: 安装libpng:sudo apt-get install libpng-dev 安装freetype: cd ~/Downloads wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.10.tar.gz tar zxvf freetype-2.4.10.tar.gz cd freetype-2.4.10/ ./congfigure make sudo make install
If you look carefully, the completion of the installation will say:
Successfully installed matplotlib python-dateutil tornado pyparsing nose
backports.ssl-match-hostname
Cleaning up...
So, matplotlib installs a variety of Python-dependencies. As usual, try:
$ pip show matplotlib
---
Name: matplotlib
Version: 1.3.1
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires: numpy, python-dateutil, tornado, pyparsing, nose
Finally try a simple plot:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
>>> plt.plot([1,2,3,4])
[<matplotlib.lines.Line2D object at 0x7f13a8571890>]
>>> plt.ylabel('some numbers')
<matplotlib.text.Text object at 0x7f13a85c47d0>
>>> plt.show()
>>> exit()
A plot should open in a new window when plot.show() is executed.
sympy
sympy is a computer algebra system for Python. Install with pipusing:
$ pip install --user sympy
Again, installation information from pip is obtained with:
$ pip show sympy
---
Name: sympy
Version: 0.7.5
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
Finally, following the sympy tutorial, start Python and try:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import symbols
>>> x, y = symbols('x y')
>>> expr = x + 2*y
>>> expr
x + 2*y
>>> expr + 1
x + 2*y + 1
>>> expr - x
2*y
>>> exit()
Cool!
IPython
Next, we install IPython (including notebooks), which has become a major tool for sharing python projects in an interactive format. To install we use:
$ pip install --user ipython[notebook]
At the end, we get the message:
Successfully installed ipython jinja2 pyzmq markupsafe
Cleaning up...
showing that jinja2, pyzmq and markupsafe have also been installed. Get install information from pip:
$ pip show ipython
---
Name: ipython
Version: 2.1.0
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
Now, try:
$ ipython
which launches the IPython terminal. Notice the IPython version is provided and the prompt looks different from the normal >>>Python prompt (see the IPython documentation for more information):
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
Type "copyright", "credits" or "license" for more information. IPython 2.1.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details. In [1]: import numpy as np In [2]: print np.__version__
1.8.1 In [3]: exit()
Finally, IPython notebook can be launched with the command:
$ ipython notebook
This launches a web browser and you should see the IPythonnotebook interface. You can create a new notebook and work away. To shutdown the server, back at the terminal where you launched the notebook, type cntrl-C and then y when prompted:
Shutdown this notebook server (y/[n])? y
2014-06-04 16:29:04.033 [NotebookApp] CRITICAL | Shutdown confirmed
2014-06-04 16:29:04.033 [NotebookApp] Shutting down kernels
That’s it, you’re now an IPython notebook user!
pygraphviz
pygraphviz is a Python interface to the graphviz visualization code that can be used by itself but is also employed by networkx and other packages. Be sure that graphviz and its developer libraries are installed (see Ubuntu Dependencies above) and install pygraphvizusing:
$ pip install --user pygraphviz
Get install information from pip:
$ pip show pygraphviz
---
Name: pygraphviz
Version: 1.2
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
Also, try:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygraphviz
>>> print pygraphviz.__version__
1.2
>>> exit()
networkx
networkx is a Python package for building, analyzing, and visualizing graphs/networks. There are a variety of dependencies, all of which we have installed above. So, install with:
$ pip install --user networkx
Get install information from pip:
$ pip show networkx
---
Name: networkx
Version: 1.8.1
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
Try a simple example:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import networkx as nx
>>> G = nx.Graph()
>>> G.add_edge(1,2)
>>> G.add_edge(2,3)
>>> import matplotlib.pyplot as plt
>>> nx.draw(G)
>>> plt.show()
>>> exit()
With matplotlib and pygraphviz installed (see above), this code should create a very simple graph and show it in a new window whenplt.show() is executed.
pandas
pandas is a Python packaged focused on data – reading, writing, manipulating, etc. There are a variety of pandas dependencies: required, recommended and optional. We’ll focus on the first two categories.
The required dependencies are numpy (installed above), python-dateutil (installed above with matplotlib), and pytz (we will let pipinstall with pandas). However, let’s install the recommended dependencies:
$ pip install --user numexpr
After install we get:
$ pip show numexpr
---
Name: numexpr
Version: 2.4
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires: numpy
$ pip install --user Bottleneck
After install we get:
$ pip show Bottleneck
---
Name: Bottleneck
Version: 0.8.0
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
We can also import both packages in Python and print the package version to make sure that basic usage seems okay:
$ python -c "import numexpr;print numexpr.__version__"
2.4
$ python -c "import bottleneck;print bottleneck.__version__"
0.8.0
Finally, for pandas, we install the main package:
$ pip install --user pandas
After some downloading and compiling we get (showing that both pandas and pytz were installed, as expected):
Successfully installed pandas pytz
Cleaning up...
Use pip to check the installation information:
$ pip show pandas
---
Name: pandas
Version: 0.14.0
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires: python-dateutil, pytz, numpy
Note: if you import pandas, an error about openpyxl (a package for working with Excel 2007 files) will be issued:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
/home/cstrelioff/.local/lib/python2.7/site-packages/pandas/io/excel.py:626: UserWarning: Installed openpyxl is not supported at this time. Use >=1.6.1 and <2.0.0.
.format(openpyxl_compat.start_ver, openpyxl_compat.stop_ver))
>>> exit()
The error says that openpyxl needs to be at least version 1.6.1 and less than 2.0.0. Strange, this package is listed as optional. Oh well, let’s install an appropriate version. If we just use pip to install the current version it will be too high. So, I installed as follows:
- openpyxl 1.8.6
$ pip install --user openpyxl==1.8.6
This install forces the use an appropriate version. Now, try importingpandas and we get:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
>>> print pandas.__version__
0.14.0
>>> import openpyxl
>>> print openpyxl.__version__
1.8.6
>>> exit()
Yay(!) we can import pandas (and openpyxl) without complaints.
Finally, before leaving pandas, I will mention that there are a variety of optional pandas dependencies that you might want to consider as well. I won’t consider them in this post.
pymc
pymc is a really nice MCMC package for Python. I have used it on several projects with great success. Installation with pip follows the usual format:
$ pip install --user pymc
Get install information:
$ pip show pymc
---
Name: pymc
Version: 2.3.2
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
Starting Python you should also be able to get:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymc
>>> print pymc.__version__
2.3.2
>>> exit()
statsmodels
statsmodels provides some nice statistics methods. Before installingstatsmodels itself, we must install dependencies, which will likely be usesul in any case: patsy and cython.
- patsy : is a package for describing statistical models in R-like format. Install with:
$ pip install --user patsy
We can see where pip installed patsy:
$ pip show patsy
---
Name: patsy
Version: 0.2.1
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires: numpy
and try importing patsy in a Python session:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import patsy
>>> print patsy.__version__
0.2.1
>>> exit()
- cython : allows for wrapping of c++ code. Install with:
$ pip install --user Cython
Check with pip:
$ pip show Cython
---
Name: Cython
Version: 0.20.1
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
and importing in a Python session:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cython
>>> print cython.__version__
0.20.1
>>> exit()
- Finally, install statsmodels with pip:
$ pip install --user statsmodels
Show install info with pip:
$ pip show statsmodels
---
Name: statsmodels
Version: 0.5.0
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
and try an import:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import statsmodels
>>> print statsmodels.__version__
0.5.0
>>> exit()
Okay, that’s patsy, cython and statsmodels.
CMPy
CMPy is a package for Computational Mechanics in Python developed in the Crutchfield Lab at UC Davis. Currently the package is developed, using git for version control, but is not publicly available. However, I will document the install here because:
- It’s useful for people at UCD (or collaborating with people at UCD)
- This is an example of installation of a Python package in a folder on the local machine
I start by showing that I have cloned the CMPy package to the~/gitlocal/cmpy/ directory. You can see the setup.py file when I show the directory contents:
$ ls ~/gitlocal/cmpy/
apps build CHANGES.txt cmpy data docs gallery LICENSE.txt MANIFEST.in old_doc pylintrc README.txt scripts setup.py src
We do the install with pip, using the -e switch to show the location of the package code:
$ pip install --user -e ~/gitlocal/cmpy/
Obtaining file:///home/cstrelioff/gitlocal/cmpy
Running setup.py (path:/home/cstrelioff/gitlocal/cmpy/setup.py) egg_info for package from file:///home/cstrelioff/gitlocal/cmpy Installing collected packages: CMPy
Running setup.py develop for CMPy Creating /home/cstrelioff/.local/lib/python2.7/site-packages/CMPy.egg-link (link to .)
Adding CMPy 1.0dev to easy-install.pth file Installed /home/cstrelioff/gitlocal/cmpy
Successfully installed CMPy
Cleaning up...
Note that the path to the CMPy directory is added to easy-install.pth, a file that Python consults to find CMPy. Finally, we show the pipinformation:
$ pip show cmpy
---
Name: CMPy
Version: 1.0dev
Location: /home/cstrelioff/gitlocal/cmpy
Requires:
Again, note that the location is ~/gitlocal/cmpy/, instead of~/.local/lib/python2.7/site-packages/, due to the -e tag. This is why the addition to the easy_install.pth file (above) was needed.
Edit: Aug 21st, 2014
A note on updating this local installation is in order. Recently a change in code was made that affected underlying c code that is incorporated using cython. I pulled the repository changes using:
$ cd ~/gitlocal/cmpy/
$ git pull
To try and update the install I did:
$ pip install --user -e ~/gitlocal/cmpy/
This ran the setup.py file but did not recompile the modified c code. To get this to work I had to remove the build directory, build in place and install again:
$ cd ~/gitlocal/cmpy/
$ rm -r build/
$ python setup.py build_ext -i --cython
$ pip install --user -e ~/gitlocal/cmpy/
Is there a better way to do this? Let me know in the comments below.
restview
restview is a Python package that processes reStructuredText and launches a web browser for viewing. Each time the browser is refreshed, the underlying rst document will be re-processed and displayed– very nice for working on Python docmentation or any rstdocument. Installation goes as usual:
$ pip install --user restview
We can see what was installed:
$ pip show restview
---
Name: restview
Version: 2.0.5
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires: docutils, pygments
As you can see from above, docutils and pygments will be installed if they are not already installed.
To process an rst document named test.rst type:
$ restview test.rst
Check restview for more examples.
tinkerer
tinkerer is a blogging environment for Pythonistas that is built onSphinx, a Python documentation tool. Blog entries are written inreStructuredText and rendered as static html. Of course, this is also the tool I use for this blog. Before moving to our usual pip install, we have to take care of some Ubuntu 14.04 Python dependencies. Assuming these requirements are available, tinkerer is installed with the usual:
$ pip install --user tinkerer
We can check the install information with:
$ pip show tinkerer
---
Name: Tinkerer
Version: 1.4.2
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires: Jinja2, Sphinx, Babel, pyquery
Note that requirements Jinja2, Sphinx, Babel and pyquery are also installed automatically. A quick start to getting a blog up and running (at least the generation of posts, pages and generating the html output) is available here.
Pweave
Pweave is a tool for literate programming with Python. This tool allows me to write blog posts about Python using a .Pnw file that contains reStructuredText, along with special Pweave commands, and have the Python code evaluated and output included in the .rstoutput file– see the example here. This is a really nice tool to avoid typos in code and to make sure that what you’re talking about actually works! I should note that IPython notebooks can also do this by exporting to reStructuredText. In any case, I will trying out both of these tools for future posts.
The install of Pweave goes as usual:
$ pip install --user Pweave
Check the install with:
$ pip show Pweave
---
Name: Pweave
Version: 0.21.2
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
scikit-learn
scikit-learn is the probably the most well-known and feature-complete package for machine learning tasks in Python. There are a number of dependencies that need to be installed (numpy, scipy, python-dev, etc see scikit-learn installation for more information) that have already been installed above. So, we install using pip, as usual:
$ pip install --user scikit-learn
Then we can check the installed version and location using:
$ pip show scikit-learn
---
Name: scikit-learn
Version: 0.15.1
Location: /home/cstrelioff/.local/lib/python2.7/site-packages
Requires:
That’s it, machine-learn away!
windows和linux中搭建python集成开发环境IDE——如何设置多个python环境的更多相关文章
- 【转】windows和linux中搭建python集成开发环境IDE
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- Python集成开发工具(IDE)推荐
1.7 Python集成开发工具(IDE)推荐 1.7.1 Notepad++ Notepad++是Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语 ...
- [原创]在Windows和Linux中搭建PostgreSQL源码调试环境
张文升http://ode.cnblogs.comEmail:wensheng.zhang#foxmail.com 配图太多,完整pdf下载请点这里 本文使用Xming.Putty和VMWare几款工 ...
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- windows和linux在建筑python集成开发环境IDE
http://blog.csdn.net/pipisorry/article/details/39854707 使用的系统及软件 Ubuntu / windows Python 2.7 / pytho ...
- 【Python开发】python集成开发环境IDE搭建
http://blog.csdn.net/pipisorry/article/details/39854707 使用的系统及软件 Ubuntu / windows Python 2.7 / pytho ...
- Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux开发环境[2.2]
Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux开发环境[2.2] 2015-07 北京海淀区 ...
- Python集成开发环境搭建
===================== 开始学习Python的开发,首先得搭建好集成开发的环境! 分为下面几个步骤: 操作系统平台:Windows XP/7/10 都可以 1.安装并配置JDK运行 ...
- Windows安装Python环境和Python集成开发环境(IDE)PyCharm
1.Windows中安装Python 3 (1)打开浏览器,访问Python官网(https://www.python.org/) (2)光标移动至Downloads,单机Windows链接 (3)根 ...
随机推荐
- 搭建自己的LAMP
LAMP的搭建说简单也简单,说难也不容易,如果采用一键安装也是比较容易的,但想配置自己需要的版本等等也是比较麻烦.前段时间我分别在自己的电脑和阿里云上部署了Lamp环境,以下是步骤和常出现的问题的解决 ...
- ****基于H5的微信支付开发详解[转]
这次总结一下用户在微信内打开网页时,可以调用微信支付完成下单功能的模块开发,也就是在微信内的H5页面通过jsApi接口实现支付功能.当然了,微信官网上的微信支付开发文档也讲解的很详细,并且有实现代码可 ...
- Denormalization 2
In a relational database, denormalization is an approach to speeding up read performance (data retri ...
- 【leetcode】ZigZag Conversion
题目简述 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows ...
- cocos2d-x 从win32到android移植的全套解决方案
引言:我们使用cocos2d-x引擎制作了一款飞行射击游戏,其中创新性地融入了手势识别功能.但是我们在移植过程中遇到了很多的问题,同时也发现网上的资料少而不全.所以在项目行将结束的时候,我们特地写了这 ...
- 私有无线传感网 PWSN HLINK
私有无线传感网,我把其叫做 Personal Wireless Sensor Network.此种网络最另众人所知的就是ZIGBEE了.由于在用户不同的使用场景中,对传感网络有许多不同的要求,例如:通 ...
- Ubuntu菜鸟入门(五)—— 一些编程相关工具
一.sublime text3 sudo add-apt-repository ppa:webupd8team/sublime-text- sudo apt-get update sudo apt-g ...
- 进击的Python【第二十章】
1.Django请求的生命周期 路由系统 -> 试图函数(获取模板+数据=>渲染) -> 字符串返回给用户 2.路由系统 /index/ -> 函数或类.as_view() / ...
- Linux内核笔记--内存管理之用户态进程内存分配
内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你 ...
- 身份证验证JS代码
身份证验证JS程序function checkidcardfun(code) { var city = {11: "北京", 12: "天津", 13: &qu ...