1:安装python
python2.7版本(最新的python版本是3.4,但用户体验没有2.7版本的好,我们选择用2.7版本)
下载地址:https://www.python.org/download/releases/2.7.8/
下载Windows x86 MSI Installer (2.7.8)安装包
设置系统环境变量
执行命令验证
输入Python
2:下载安装setuptools工具集
在命令行方式下,进入目录“C:\Python27\Scripts”,执行python ez_setup.py。
若安装后Scripts文件夹下,没有ez_setup.py
把下面内容复制到记事本,重命名ez_setup.py,记得后缀别错了,否则无效。
ez_setup.py
#!/usr/bin/env python """ Setuptools bootstrapping installer. Maintained at https://github.com/pypa/setuptools/tree/bootstrap. Run this script to install or upgrade setuptools. """ import os shutil sys tempfile zipfile optparse subprocess platform textwrap contextlib warnings from distutils log try: from urllib.request urlopen except ImportError: from urllib2 urlopen from site USER_SITE ImportError: USER_SITE = None DEFAULT_VERSION = "33.1.1" DEFAULT_URL = https://pypi.io/packages/source/s/setuptools/ DEFAULT_SAVE_DIR = os.curdir MEANINGFUL_INVALID_ZIP_ERR_MSG = 'Maybe {0} is corrupted,delete it and try again.' def _python_cmd(*args): Execute a command. Return True if the command succeeded. """ args = (sys.executable,) + args return subprocess.call(args) == 0 def _install(archive_filename,install_args=()): Install Setuptools. with archive_context(archive_filename): installing log.warn(Installing Setuptools') if not _python_cmd(setup.py',installinstall_args): log.warn(Something went wrong during the installation.) log.warn(See the error message above.) exitcode will be 2 return 2 def _build_egg(egg,archive_filename,to_dir): Build Setuptools egg. building an egg log.warn(Building a Setuptools egg in %s,to_dir) _python_cmd(-qbdist_egg--dist-dir returning the result log.warn(egg) not os.path.exists(egg): raise IOError(Could not build the egg.) class ContextualZipFile(zipfile.ZipFile): Supplement ZipFile class to support context manager for Python 2.6.""" def __enter__(self): return self __exit__(self,type,value,traceback): self.close() __new__(cls,*args,**kwargs): Construct a ZipFile or ContextualZipFile as appropriate.""" if hasattr(zipfile.ZipFile,1)">__exit__): return zipfile.ZipFile(*args,1)">kwargs) return super(ContextualZipFile,cls).__new__(cls) @contextlib.contextmanager archive_context(filename): Unzip filename to a temporary directory,set to the cwd. The unzipped target is cleaned up after. tmpdir = tempfile.mkdtemp() log.warn(Extracting in %s os.getcwd() : os.chdir(tmpdir) : with ContextualZipFile(filename) as archive: archive.extractall() zipfile.BadZipfile as err: err.args: err.args = ('' ( MEANINGFUL_INVALID_ZIP_ERR_MSG.format(filename),) raise going in the directory subdir = os.path.join(tmpdir,os.listdir(tmpdir)[0]) os.chdir(subdir) log.warn(Now working in %syield finally: os.chdir(old_wd) shutil.rmtree(tmpdir) _do_download(version,download_base,to_dir,download_delay): Download Setuptools. py_desig = py{sys.version_info[0]}.{sys.version_info[1]}'.format(sys=sys) tp = setuptools-{version}-{py_desig}.egg egg = os.path.join(to_dir,tp.format(**locals())) os.path.exists(egg): archive = download_setuptools(version,download_delay) _build_egg(egg,archive,to_dir) sys.path.insert(0,egg) Remove previously-imported pkg_resources if present (see https://bitbucket.org/pypa/setuptools/pull-request/7/ for details). if pkg_resources' in sys.modules: _unload_pkg_resources() setuptools setuptools.bootstrap_install_from = egg use_setuptools( version=DEFAULT_VERSION,download_base=DEFAULT_URL,to_dir=DEFAULT_SAVE_DIR,download_delay=15): Ensure that a setuptools version is installed. Return None. Raise SystemExit if the requested version or later cannot be installed. to_dir = os.path.abspath(to_dir) prior to importing,capture the module state for representative modules. rep_modules = setuptools imported = set(sys.modules).intersection(rep_modules) : pkg_resources pkg_resources.require(setuptools>=" + version) a suitable version is already installed return ImportError: pkg_resources not available; setuptools is not installed; download pass pkg_resources.DistributionNotFound: no version of setuptools was found; allow download pkg_resources.VersionConflict as VC_err: if imported: _conflict_bail(VC_err,version) otherwise,unload pkg_resources to allow the downloaded version to take precedence. del pkg_resources _unload_pkg_resources() _conflict_bail(VC_err,version): Setuptools was imported prior to invocation,so it is unsafe to unload it. Bail out. conflict_tmpl = textwrap.dedent( The required version of setuptools (>={version}) is not available,and can't be installed while this script is running. Please install a more recent version first,using 'easy_install -U setuptools'. (Currently using {VC_err.args[0]!r}) ) msg = conflict_tmpl.format(**locals()) sys.stderr.write(msg) sys.exit(2 _unload_pkg_resources(): sys.meta_path = [ importer for importer sys.meta_path if importer.__class__.__module__ != pkg_resources.extern ] del_modules = [ name for name sys.modules if name.startswith() ] for mod_name del_modules: sys.modules[mod_name] _clean_check(cmd,target): Run the command to download target. If the command fails,clean up before re-raising the error. """ : subprocess.check_call(cmd) subprocess.CalledProcessError: os.access(target,os.F_OK): os.unlink(target) raise download_file_powershell(url,1)"> Download the file at url to target using Powershell. Powershell will validate trust. Raise an exception if the command cannot complete. target = os.path.abspath(target) ps_cmd = ( [System.Net.WebRequest]::DefaultWebProxy.Credentials = " [System.Net.CredentialCache]::DefaultCredentials; (new-object System.Net.WebClient).DownloadFile("%(url)s","%(target)s")' % locals() ) cmd = [ powershell-Command has_powershell(): Determine if Powershell is available.if platform.system() != Windows False cmd = [echo test] with open(os.path.devnull,1)">wb) as devnull: : subprocess.check_call(cmd,stdout=devnull,stderr=devnull) Exception: False True download_file_powershell.viable = has_powershell download_file_curl(url,target): cmd = [curl--location--silent--output has_curl(): cmd = [--version True download_file_curl.viable = has_curl download_file_wget(url,1)">wget--quiet--output-document has_wget(): cmd = [ True download_file_wget.viable = has_wget download_file_insecure(url,1)">Use Python to download the file,without connection authentication. src = urlopen(url) Read all the data in one block. data = src.read() : src.close() Write all the data in one block to avoid creating a partial file. with open(target,1)">) as dst: dst.write(data) download_file_insecure.viable = lambda: True get_best_downloader(): downloaders = ( download_file_powershell,download_file_curl,download_file_wget,download_file_insecure,) viable_downloaders = (dl for dl in downloaders dl.viable()) next(viable_downloaders,None) download_setuptools( version=DEFAULT_VERSION,delay=15get_best_downloader): Download setuptools from a specified location and return its filename. `version` should be a valid setuptools version number that is available as an sdist for download under the `download_base` URL (which should end with a '/'). `to_dir` is the directory where the egg will be downloaded. `delay` is the number of seconds to pause before an actual download attempt. ``downloader_factory`` should be a function taking no arguments and returning a function for downloading a URL to a target. making sure we use the absolute path to_dir = os.path.abspath(to_dir) zip_name = setuptools-%s.zip" % version url = download_base + zip_name saveto = os.path.join(to_dir,zip_name) not os.path.exists(saveto): Avoid repeated downloads log.warn(Downloading %s downloader_factory() downloader(url,saveto) os.path.realpath(saveto) _build_install_args(options): Build the arguments to 'python setup.py install' on the setuptools package. Returns list of command line arguments. return [--user'] if options.user_install else [] _parse_args(): Parse the command line for options. parser = optparse.OptionParser() parser.add_option( user_installstore_trueFalse,help=install in user site package) parser.add_option( --download-basedownload_baseURLalternative URL from where to download the setuptools package--insecuredownloader_factorystore_constlambda: download_file_insecure,1)">get_best_downloader,1)">Use internal,non-validating downloader ) parser.add_option( Specify which version to downloadDEFAULT_VERSION,) parser.add_option( --to-dirDirectory to save (and re-use) packageDEFAULT_SAVE_DIR,) options,args = parser.parse_args() positional arguments are ignored options _download_args(options): Return args for download_setuptools function from cmdline args. dict( version=options.version,download_base=options.download_base,1)">options.downloader_factory,to_dir=options.to_dir,) main(): Install or upgrade setuptools and EasyInstall. options = _parse_args() archive = download_setuptools(**_download_args(options)) _install(archive,_build_install_args(options)) __name__ == __main__: warnings.warn(ez_setup.py is deprecated; use pip to install setuptools) sys.exit(main())
再次在命令行方式下,进入目录“C:\Python27\Scripts”,执行python ez_setup.py。
也可以:
下载https://bootstrap.pypa.io/ez_setup.py
python ez_setup.py #安装 setuptools
如果还是不能安装:
1.下载windows的压缩包,解压到python安装路径
地址:https://pypi.python.org/packages/source/s/setuptools/setuptools-3.4.4.zip#md5=5f7c0a99cb66df161a6c08737d91f11e
2.执行命令,python setup.py即可
3:下载pip 【python的安装包管理工具】
https://pypi.python.org/pypi/pip
解压pip包并进入到解压后的文件目录下。
执行python setup.py install
再切换到C:\Python27\Scripts 目录下输入:
C:\Python27\Scripts > easy_install pip
安装完毕之后会在系统目录下生成Scripts目录,里面有 :
easy_install.exe 和 pip.exe 等可执行文件。
最好,把python和python2.7.5/Scripts添加到系统配置文件path属性值里。
这样就可以直接执行了,
安装完pip和easy_installer工具后,以后再安装python其他库就方便了
例:
easy_install redis
或
pip install redis (推荐使用pip)
本人测试,easy_install 没有问题,但是使用pip就报错了,奇葩了,后来没办法就使用easy_install重新安装了一下:
如果还不行:
下载后,解压缩上面pip-9.0.1.tar.gz文件,打开CMD,进入解压缩后文件的根目录,该目录中有一个setup.py文件,然后再cmd中输入python setup.py install命令
所有安装完成,查看相关文件路径:
看到上图中提示信息,说明你的pip已经安装成功啦,进入Python安装路径的Scripts文件夹下即可看到pip.exe,说明可以使用pip啦,具体如下:
4:安装selenium(验证pip是否安装成功)
在Python安装目录下的Scripts目录下执行pip install -U selenium安装selenium
若未联网也可以下载selenium for python解压后放置在Lib\site-pageages目录下
3.5:下载并安装测试报告文件包
下载HTMLTestRunner.py放置在Lib目录下:
http://tungwaiyip.info/software/HTMLTestRunner.html
3.6.我的第一个程序:
from time sleep from selenium webdriver from selenium.webdriver.common.keys Keys driver=webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com/") driver.find_element_by_id("kw").send_keys("selenium") driver.quit()
注意:
chromedriver.exe必须放到system32下,否则脚本不能运行