Python终极教程(Windows)

本文希望提供傻瓜式的教程,能够令读者成功安装Python和pip。

  第一步,我们先来安装Python,博主选择的版本是最新的3.4.2版本。windows下面的Python安装一般是通过软件安装包安装而不是命令行,所以我们首先要在Python的官方主页上面下载最新的Python安装包。下载地址是:https://www.python.org/downloads/

在下载完成之后,一直点击下一步就OK了。在安装完成之后,打开控制台,输入“Python”,我们能够看到下面的效果:

原因很简单,是因为python.exe文件在 Python 目录下,我们还没有设置环境变量。所以我们需要手动添加环境变量:鼠标右键我的电脑  -> 属性 -> 点击高级系统设置 -> 点击环境变量 -> 点击PATH -> 在最后面加上我们的Python安装路径 -> 点击确定。用一张图来表示就是:

在这个过程中需要注意的问题是,添加PATH路径的时候,要在最后面添加一个分号。现在我们再次在浏览器里面输入“Python”,就能直接在控制台出入命令了:

  第二步,我们安装pip。我们同样需要在Python的官网上去下载,下载地址是:https://pypi.python.org/pypi/pip#downloads :

下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入:

python setup.py install

安装好之后,我们直接在命令行输入pip,同样会显示‘pip’不是内部命令,也不是可运行的程序。因为我们还没有添加环境变量。

按照之前介绍的添加环境变量的方法,我们在PATH最后添加:

C:\Python34\Scripts;

到现在我们才算完整安装好了pip:

  第三步,安装一些Python的包,比如Tornado这个web框架:

剩下的安装可以pip install XXXX 自行处理;例如:

import pandas as pd

import numpy as np

from sklearn.cluster import KMeans

from sklearn import metrics

import heapq

Anaconda详细安装及使用教程

一、什么是Anaconda?

1. 简介

Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。

2. 特点

Anaconda具有如下特点:

开源

安装过程简单

高性能使用Python和R语言

免费的社区支持

其特点的实现主要基于Anaconda拥有的:

conda包

环境管理器

1,000+开源库

如果日常工作或学习并不必要使用1,000多个库,那么可以考虑安装Miniconda(图形界面下载及命令行安装请戳),这里不过多介绍Miniconda的安装及使用。

3. Anaconda、conda、pip、virtualenv的区别

① Anaconda

Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。

② conda

conda是包及其依赖项和环境的管理工具。

适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。

适用平台:Windows, macOS, Linux

用途:

快速安装、运行和升级包及其依赖项。

在计算机中便捷地创建、保存、加载和切换环境。

如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。——conda官方网站

conda为Python项目而创造,但可适用于上述的多种语言。

conda包和环境管理器包含于Anaconda的所有版本当中。

③ pip

pip是用于安装和管理软件包的包管理器。

pip编写语言:Python。

Python中默认安装的版本:

Python 2.7.9及后续版本:默认安装,命令为pip

Python 3.4及后续版本:默认安装,命令为pip3

pip名称的由来:pip采用的是递归缩写进行命名的。其名字被普遍认为来源于2处:

“Pip installs Packages”(“pip安装包”)

“Pip installs Python”(“pip安装Python”)

④ virtualenv

virtualenv:用于创建一个独立的Python环境的工具。

解决问题:

当一个程序需要使用Python 2.7版本,而另一个程序需要使用Python 3.6版本,如何同时使用这两个程序?

如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小心升级了本不该升级的程序时,将会对其他的程序造成影响。

如果想要安装程序并在程序运行时对其库或库的版本进行修改,都会导致程序的中断。

在共享主机时,无法在全局site-packages目录中安装包。

virtualenv将会为它自己的安装目录创建一个环境,这并不与其他virtualenv环境共享库;同时也可以选择性地不连接已安装的全局库。

⑤ pip 与 conda 比较

→ 依赖项检查

pip:

不一定会展示所需其他依赖包。

安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。

conda:

列出所需其他依赖包。

安装包时自动安装其依赖项。

可以便捷地在包的不同版本中自由切换。

→ 环境管理

pip:维护多个环境难度较大。

conda:比较方便地在不同环境之间进行切换,环境管理较为简单。

→ 对系统自带Python的影响

pip:在系统自带Python中包的**更新/回退版本/卸载将影响其他程序。

conda:不会影响系统自带Python。

→ 适用语言

pip:仅适用于Python。

conda:适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。

⑥ conda与pip、virtualenv的关系

conda结合了pip和virtualenv的功能。

二、Anaconda的适用平台及安装条件

1. 适用平台

Anaconda可以在以下系统平台中安装和使用:

Windows

macOS

Linux(x86 / Power8)

2. 安装条件

系统要求:32位或64位系统均可

下载文件大小:约500MB

所需空间大小:3GB空间大小(Miniconda仅需400MB空间即可)

三、Anaconda的安装步骤

1. macOS系统安装Anaconda

① 图形界面安装

前往官方下载页面下载。有两个版本可供选择:Python 3.6 和 Python 2.7,我下载的是前者。选择版之后点击“64-Bit Graphical Installer”进行下载。

完成下载之后,双击下载文件,在对话框中“Introduction”、“Read Me”、“License”部分可直接点击下一步。

“Destination Select”部分选择“Install for me only”并点击下一步。

注意:若有错误提示信息“You cannot install Anaconda in this location”则重新选择“Install for me only”并点击下一步。

“Installation Type”部分,可以点击“Change Install Location”来改变安装位置。标准的安装路径是在用户的家目录下。在这一步我没有改变安装位置。若选择默认安装路径,则直接点击“Install”进行安装。

等待“Installation”部分结束,在“Summary”部分若看到“The installation was completed successfully.”则安装成功,直接点击“Close”关闭对话框。

在mac的Launchpad中可以找到名为“Anaconda-Navigator”的图标,点击打开。

若“Anaconda-Navigator”成功启动,则说明真正成功地安装了Anaconda;如果未成功,请务必仔细检查以上安装步骤。

“Anaconda-Navigator”中已经包含“Jupyter Notebook”、“Jupyterlab”、“Qtconsole”和“Spyder”。(图中的“Rstudio”是我后来安装的,但它默认出现在“Anaconda-Navigator”的启动界面,只需要点击“Install”便可安装。)

完成安装。

② 命令行安装

前往官方下载页面下载。有两个版本可供选择:Python 3.6 和 Python 2.7,我下载的是前者。选择版之后点击“64-Bit Command-Line Installer”进行下载。

完成下载之后,在mac的Launchpad中找到“其他”并打开“终端”。

安装Python 3.6:bash ~/Downloads/Anaconda3-5.0.1-MacOSX-x86_64.sh

安装Python 2.7:bash ~/Downloads/Anaconda2-5.0.1-MacOSX-x86_64.sh

注意:

首词bash也需要输入,无论是否用的Bash shell。

如果你的下载路径是自定义的,那么把该步骤路径中的~/Downloads替换成你自己的下载路径。

如果你将第1步下载的.sh文件重命名了,那么把该步骤路径中的Anaconda3-5.0.1-MacOSX-x86_64.sh或Anaconda2-5.0.1-MacOSX-x86_64.sh替换成你重命名后的文件名。

强烈建议:不要修改文件名。如果重命名,使用英文进行命名。

安装过程中,看到提示“In order to continue the installation process, please review the license agreement.”(“请浏览许可证协议以便继续安装。”),点击“Enter”查看“许可证协议”。

在“许可证协议”界面将屏幕滚动至底,输入“yes”表示同意许可证协议内容。然后进行下一步。

安装过程中,提示“Press Enter to confirm the location, Press CTRL-C to cancel the installation or specify an alternate installation directory.”(“按回车键确认安装路径,按'CTRL-C'取消安装或者指定安装目录。”)如果接受默认安装路径,则会显示“PREFIX=/home/<user>/anaconda<2 or 3>”并且继续安装。安装过程大约需要几分钟的时间。

建议:直接接受默认安装路径。

安装器若提示“Do you wish the installer to prepend the Anaconda install location to PATH in your /home//.bash_profile ?”(“你希望安装器添加Anaconda安装路径在/home/<user>/.bash_profile文件中吗?”),建议输入“yes”。

注意:

路径/home/<user>/.bash_profile中“”即进入到家目录后你的目录名。

如果输入“no”,则需要手动添加路径。添加export PATH="/<path to anaconda>/bin:$PATH"在“.bashrc”或者“.bash_profile”中。其中,“”替换为你真实的Anaconda安装路径。

当看到“Thank you for installing Anaconda!”则说明已经成功完成安装。

关闭终端,然后再打开终端以使安装后的Anaconda启动。

验证安装结果。可选用以下任意一种方法:

在终端中输入命令condal list,如果Anaconda被成功安装,则会显示已经安装的包名和版本号。

在终端中输入python。这条命令将会启动Python交互界面,如果Anaconda被成功安装并且可以运行,则将会在Python版本号的右边显示“Anaconda custom (64-bit)”。退出Python交互界面则输入exit()或quit()即可。

在终端中输入anaconda-navigator。如果Anaconda被成功安装,则Anaconda Navigator的图形界面将会被启动。

2. Windows系统安装Anaconda

前往官方下载页面下载。有两个版本可供选择:Python 3.6 和 Python 2.7,选择版之后根据自己操作系统的情况点击“64-Bit Graphical Installer”或“32-Bit Graphical Installer”进行下载。

完成下载之后,双击下载文件,启动安装程序。

注意:

如果在安装过程中遇到任何问题,那么暂时地关闭杀毒软件,并在安装程序完成之后再打开。

如果在安装时选择了“为所有用户安装”,则卸载Anaconda然后重新安装,只为“我这个用户”安装。

选择“Next”。

阅读许可证协议条款,然后勾选“I Agree”并进行下一步。

除非是以管理员身份为所有用户安装,否则仅勾选“Just Me”并点击“Next”。

在“Choose Install Location”界面中选择安装Anaconda的目标路径,然后点击“Next”。

注意:

目标路径中不能含有空格,同时不能是“unicode”编码。

除非被要求以管理员权限安装,否则不要以管理员身份安装。

在“Advanced Installation Options”中不要勾选“Add Anaconda to my PATH environment variable.”(“添加Anaconda至我的环境变量。”)。因为如果勾选,则将会影响其他程序的使用。如果使用Anaconda,则通过打开Anaconda Navigator或者在开始菜单中的“Anaconda Prompt”(类似macOS中的“终端”)中进行使用。

除非你打算使用多个版本的Anaconda或者多个版本的Python,否则便勾选“Register Anaconda as my default Python 3.6”。

然后点击“Install”开始安装。如果想要查看安装细节,则可以点击“Show Details”。

点击“Next”。

进入“Thanks for installing Anaconda!”界面则意味着安装成功,点击“Finish”完成安装。

注意:如果你不想了解“Anaconda云”和“Anaconda支持”,则可以不勾选“Learn more about Anaconda Cloud”和“Learn more about Anaconda Support”。

验证安装结果。可选以下任意方法:

“开始 → Anaconda3(64-bit)→ Anaconda Navigator”,若可以成功启动Anaconda Navigator则说明安装成功。

“开始 → Anaconda3(64-bit)→ 右键点击Anaconda Prompt → 以管理员身份运行”,在Anaconda Prompt中输入conda list,可以查看已经安装的包名和版本号。若结果可以正常显示,则说明安装成功。

3. Linux系统安装Anaconda

前往官方下载页面下载。有两个版本可供选择:Python 3.6 和 Python 2.7。

启动终端,在终端中输入命令md5sum /path/filename或sha256sum /path/filename

注意:将该步骤命令中的/path/filename替换为文件的实际下载路径和文件名。其中,path是路径,filename为文件名。

强烈建议:

路径和文件名中不要出现空格或其他特殊字符。

路径和文件名最好以英文命名,不要以中文或其他特殊字符命名。

根据Python版本的不同有选择性地在终端输入命令:

Python 3.6:bash ~/Downloads/Anaconda3-5.0.1-Linux-x86_64.sh

Python 2.7:bash ~/Downloads/Anaconda2-5.0.1-Linux-x86_64.sh

注意:

首词bash也需要输入,无论是否用的Bash shell。

如果你的下载路径是自定义的,那么把该步骤路径中的~/Downloads替换成你自己的下载路径。

除非被要求使用root权限,否则均选择“Install Anaconda as a user”。

安装过程中,看到提示“In order to continue the installation process, please review the license agreement.”(“请浏览许可证协议以便继续安装。”),点击“Enter”查看“许可证协议”。

在“许可证协议”界面将屏幕滚动至底,输入“yes”表示同意许可证协议内容。然后进行下一步。

安装过程中,提示“Press Enter to accept the default install location, CTRL-C to cancel the installation or specify an alternate installation directory.”(“按回车键确认安装路径,按'CTRL-C'取消安装或者指定安装目录。”)如果接受默认安装路径,则会显示“PREFIX=/home/<user>/anaconda<2 or 3>”并且继续安装。安装过程大约需要几分钟的时间。

建议:直接接受默认安装路径。

安装器若提示“Do you wish the installer to prepend the Anaconda<2 or 3> install location to PATH in your /home//.bashrc ?”(“你希望安装器添加Anaconda安装路径在/home/<user>/.bashrc文件中吗?”),建议输入“yes”。

注意:

路径/home/<user>/.bash_rc中“”即进入到家目录后你的目录名。

如果输入“no”,则需要手动添加路径,否则conda将无法正常运行。

当看到“Thank you for installing Anaconda<2 or 3>!”则说明已经成功完成安装。

关闭终端,然后再打开终端以使安装后的Anaconda启动。或者直接在终端中输入source ~/.bashrc也可完成启动。

验证安装结果。可选用以下任意一种方法:

在终端中输入命令condal list,如果Anaconda被成功安装,则会显示已经安装的包名和版本号。

在终端中输入python。这条命令将会启动Python交互界面,如果Anaconda被成功安装并且可以运行,则将会在Python版本号的右边显示“Anaconda custom (64-bit)”。退出Python交互界面则输入exit()或quit()即可。

在终端中输入anaconda-navigator。如果Anaconda被成功安装,则Anaconda Navigator将会被启动。

四、管理conda

0. 写在前面

接下来均是以命令行模式进行介绍,Windows用户请打开“Anaconda Prompt”;macOS和Linux用户请打开“Terminal”(“终端”)进行操作。

1. 验证conda已被安装

conda --version

终端上将会以conda 版本号的形式显示当前安装conda的版本号。如:conda 3.11.0

注意:如果出现错误信息,则需核实是否出现以下情况:

使用的用户是否是安装Anaconda时的账户。

是否在安装Anaconda之后重启了终端。

2. 更新conda至最新版本

conda update conda

执行命令后,conda将会对版本进行比较并列出可以升级的版本。同时,也会告知用户其他相关包也会升级到相应版本。

当较新的版本可以用于升级时,终端会显示Proceed ([y]/n)?,此时输入y即可进行升级。

3. 查看conda帮助信息

conda --help

conda -h

4. 卸载conda

① Linux 或 macOS

rm -rf ~/anaconda2

rm -rf ~/anaconda3

即删除Anaconda的安装目录。根据安装的Anaconda版本选择相应的卸载命令。

② Windows

控制面板 → 添加或删除程序 → 选择“PythonX.X(Anaconda)” → 点击“删除程序”

注意:

Python X.X:即Python的版本,如:Python 3.6。

Windows 10的删除有所不同。

五、管理环境

0. 写在前面

接下来均是以命令行模式进行介绍,Windows用户请打开“Anaconda Prompt”;macOS和Linux用户请打开“Terminal”(“终端”)进行操作。

1. 创建新环境

conda create --name

注意:

<env_name>即创建的环境名。建议以英文命名,且不加空格,名称两边不加尖括号“<>”。

<package_names>即安装在环境中的包名。名称两边不加尖括号“<>”。

如果要安装指定的版本号,则只需要在包名后面以=和版本号的形式执行。如:conda create --name python2 python=2.7,即创建一个名为“python2”的环境,环境中安装版本为2.7的python。

如果要在新创建的环境中创建多个包,则直接在<package_names>后以空格隔开,添加多个包名即可。如:conda create -n python3 python=3.5 numpy pandas,即创建一个名为“python3”的环境,环境中安装版本为3.5的python,同时也安装了numpy和pandas。

--name同样可以替换为-n。

提示:默认情况下,新创建的环境将会被保存在/Users/<user_name>/anaconda3/env目录下,其中,<user_name>为当前用户的用户名。

2. 切换环境

① Linux 或 macOS

sourceactivate

② Windows

activate

③ 提示

如果创建环境后安装Python时没有指定Python的版本,那么将会安装与Anaconda版本相同的Python版本,即如果安装Anaconda第2版,则会自动安装Python 2.x;如果安装Anaconda第3版,则会自动安装Python 3.x。

当成功切换环境之后,在该行行首将以“(env_name)”或“[env_name]”开头。其中,“env_name”为切换到的环境名。如:在macOS系统中执行source active python2,即切换至名为“python2”的环境,则行首将会以(python2)开头。

3. 退出环境至root

① Linux 或 macOS

sourcedeactivate

② Windows

deactivate

③ 提示

当执行退出当前环境,回到root环境命令后,原本行首以“(env_name)”或“[env_name]”开头的字符将不再显示。

4. 显示已创建环境

conda info --envs

conda info -e

conda envlist

例如:

结果中星号“*”所在行即为当前所在环境。macOS系统中默认创建的环境名为“base”。

5. 复制环境

conda create --name--clone

注意:

<copied_env_name>即为被复制/克隆环境名。环境名两边不加尖括号“<>”。

<new_env_name>即为复制之后新环境的名称。环境名两边不加尖括号“<>”。

如:conda create --name py2 --clone python2,即为克隆名为“python2”的环境,克隆后的新环境名为“py2”。此时,环境中将同时存在“python2”和“py2”环境,且两个环境的配置相同。

6. 删除环境

conda remove --name--all

注意:<env_name>为被删除环境的名称。环境名两边不加尖括号“<>”。

六、管理包

1. 查找可供安装的包版本

① 精确查找

conda search --full-name

注意:

--full-name为精确查找的参数。

<package_full_name>是被查找包的全名。包名两边不加尖括号“<>”。

例如:conda search --full-name python即查找全名为“python”的包有哪些版本可供安装。

② 模糊查找

conda search

注意:<text>是查找含有此字段的包名。此字段两边不加尖括号“<>”。

例如:conda search py即查找含有“py”字段的包,有哪些版本可供安装。

2. 获取当前环境中已安装的包信息

condalist

执行上述命令后将在终端显示当前环境已安装包的包名及其版本号。

3. 安装包

① 在指定环境中安装包

conda install --name

注意:

<env_name>即将包安装的指定环境名。环境名两边不加尖括号“<>”。

<package_name>即要安装的包名。包名两边不加尖括号“<>”。

例如:conda install --name python2 pandas即在名为“python2”的环境中安装pandas包。

② 在当前环境中安装包

conda install

注意:

<package_name>即要安装的包名。包名两边不加尖括号“<>”。

执行命令后在当前环境中安装包。

例如:conda install pandas即在当前环境中安装pandas包。

③ 使用pip安装包

→ 使用场景

当使用conda install无法进行安装时,可以使用pip进行安装。例如:see包。

→ 命令

pip install

注意:<package_name>为指定安装包的名称。包名两边不加尖括号“<>”。

如:pip install see即安装see包。

→ 注意

pip只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用pip进行安装包,则需要先切换到指定环境中,再使用pip命令安装包。

pip无法更新python,因为pip并不将python视为包。

pip可以安装一些conda无法安装的包;conda也可以安装一些pip无法安装的包。因此当使用一种命令无法安装包时,可以尝试用另一种命令。

④ 从Anaconda.org安装包

→ 使用场景

当使用conda install无法进行安装时,可以考虑从Anaconda.org中获取安装包的命令,并进行安装。

→ 注意

从Anaconda.org安装包时,无需注册。

当前环境中安装来自于Anaconda.org的包时,需要通过输入要安装的包在Anaconda.org中的路径作为获取途径(channel)。查询路径的方式如下:

在浏览器中输入:http://anaconda.org,或直接点击Anaconda.org

在新页面“Anaconda Cloud”的上方搜索框中输入要安装的包名,然后点击右边“放大镜”标志。

搜索结果中有数以千计的包可供选择,此时点击“Downloads”可根据下载量进行排序,最上面的为下载最多的包。(图中以搜索bottleneck包为例)

选择满足需求的包或下载量最多的包,点击包名。

复制“To install this package with conda run:”下方的命令,并粘贴在终端中执行。

完成安装。

4. 卸载包

① 卸载指定环境中的包

conda remove --name

注意:

<env_name>即卸载包所在指定环境的名称。环境名两边不加尖括号“<>”。

<package_name>即要卸载包的名称。包名两边不加尖括号“<>”。

例如:conda remove --name python2 pandas即卸载名为“python2”中的pandas包。

② 卸载当前环境中的包

conda remove

注意:

<package_name>即要卸载包的名称。包名两边不加尖括号“<>”。

执行命令后即在当前环境中卸载指定包。

例如:conda remove pandas即在当前环境中卸载pandas包。

5. 更新包

① 更新所有包

conda update --all

conda upgrade --all

建议:在安装Anaconda之后执行上述命令更新Anaconda中的所有包至最新版本,便于使用。

② 更新指定包

conda update

conda upgrade

注意:

<package_name>为指定更新的包名。包名两边不加尖括号“<>”。

更新多个指定包,则包名以空格隔开,向后排列。如:conda update pandas numpy matplotlib即更新pandas、numpy、matplotlib包。

以上资料来自百度和简书,收集于此仅供参考!谢谢


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343