• selenium python 环境搭建(64位 windows)


      之前写了同样的文章,可是后来自己按照给文章再次搭建环境当搭建环境成功后却发现还是无法用。使用from selenium import webdriver,在run的时候却出现ImportError: cannot import name webdriver的提示,但是在Python IDLE里面跑却没有错误,在网上找了很多资料说在控制太中使用import selenium print selenium.__file__去看打印出的文件路径,如果不是下面类似的C:Python27libsite-packagesselenium-2.31.0-py2.7.eggselenium\__init__.pyc,需要把当前目录下的文件删除或者重命名。我清理注册表反复安装了多次可是还是不行。最后找了很多资料才找到解决的办法,总结了一下大概的原因主要造成的原因是因为系统造成的 主要是我现在电脑是64位的操作系统,python需要的组件中setuptools 目前没有64位的所以这个比较纠结了。最后的解决办法:

      1、到python官网下载一个64位的版本 然后直接安装。

        地址:http://www.python.org/getit/

          (1、)安装就比较弱智了,机械性的直接下一步就行(可以更换一下安装路径)

       (2、)安装好python后记得配置环境变量(直接将python的主路径贴在环境变量的path里面就可以了)

      2、安装setuptools(有两个版本,一个是exe文件但是这个在32位操作系统下好用,但是在64位下不好用,所以我们直接使用另外一种方法)

      1 #!python
      2 """Bootstrap setuptools installation
      3 
      4 If you want to use setuptools in your package's setup.py, just include this
      5 file in the same directory with it, and add this to the top of your setup.py::
      6 
      7     from ez_setup import use_setuptools
      8     use_setuptools()
      9 
     10 If you want to require a specific version of setuptools, set a download
     11 mirror, or use an alternate download directory, you can do so by supplying
     12 the appropriate options to ``use_setuptools()``.
     13 
     14 This file can also be run as a script to install or upgrade setuptools.
     15 """
     16 import sys
     17 DEFAULT_VERSION = "0.6c11"
     18 DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
     19 
     20 md5_data = {
     21     'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
     22     'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb',
     23     'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b',
     24     'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a',
     25     'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618',
     26     'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac',
     27     'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5',
     28     'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4',
     29     'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
     30     'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
     31     'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090',
     32     'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4',
     33     'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7',
     34     'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5',
     35     'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de',
     36     'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b',
     37     'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2',
     38     'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086',
     39     'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
     40     'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
     41     'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
     42     'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
     43     'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
     44     'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
     45     'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
     46     'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
     47     'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
     48     'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
     49     'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
     50     'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
     51     'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
     52     'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
     53     'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
     54     'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
     55     'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
     56     'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
     57     'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
     58     'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
     59     'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03',
     60     'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
     61     'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
     62     'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
     63 }
     64 
     65 import sys, os
     66 try: from hashlib import md5
     67 except ImportError: from md5 import md5
     68 
     69 def _validate_md5(egg_name, data):
     70     if egg_name in md5_data:
     71         digest = md5(data).hexdigest()
     72         if digest != md5_data[egg_name]:
     73             print >>sys.stderr, (
     74                 "md5 validation of %s failed!  (Possible download problem?)"
     75                 % egg_name
     76             )
     77             sys.exit(2)
     78     return data
     79 
     80 def use_setuptools(
     81     version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
     82     download_delay=15
     83 ):
     84     """Automatically find/download setuptools and make it available on sys.path
     85 
     86     `version` should be a valid setuptools version number that is available
     87     as an egg for download under the `download_base` URL (which should end with
     88     a '/').  `to_dir` is the directory where setuptools will be downloaded, if
     89     it is not already available.  If `download_delay` is specified, it should
     90     be the number of seconds that will be paused before initiating a download,
     91     should one be required.  If an older version of setuptools is installed,
     92     this routine will print a message to ``sys.stderr`` and raise SystemExit in
     93     an attempt to abort the calling script.
     94     """
     95     was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules
     96     def do_download():
     97         egg = download_setuptools(version, download_base, to_dir, download_delay)
     98         sys.path.insert(0, egg)
     99         import setuptools; setuptools.bootstrap_install_from = egg
    100     try:
    101         import pkg_resources
    102     except ImportError:
    103         return do_download()       
    104     try:
    105         pkg_resources.require("setuptools>="+version); return
    106     except pkg_resources.VersionConflict, e:
    107         if was_imported:
    108             print >>sys.stderr, (
    109             "The required version of setuptools (>=%s) is not available, and
    "
    110             "can't be installed while this script is running. Please install
    "
    111             " a more recent version first, using 'easy_install -U setuptools'."
    112             "
    
    (Currently using %r)"
    113             ) % (version, e.args[0])
    114             sys.exit(2)
    115     except pkg_resources.DistributionNotFound:
    116         pass
    117 
    118     del pkg_resources, sys.modules['pkg_resources']    # reload ok
    119     return do_download()
    120 
    121 def download_setuptools(
    122     version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
    123     delay = 15
    124 ):
    125     """Download setuptools from a specified location and return its filename
    126 
    127     `version` should be a valid setuptools version number that is available
    128     as an egg for download under the `download_base` URL (which should end
    129     with a '/'). `to_dir` is the directory where the egg will be downloaded.
    130     `delay` is the number of seconds to pause before an actual download attempt.
    131     """
    132     import urllib2, shutil
    133     egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3])
    134     url = download_base + egg_name
    135     saveto = os.path.join(to_dir, egg_name)
    136     src = dst = None
    137     if not os.path.exists(saveto):  # Avoid repeated downloads
    138         try:
    139             from distutils import log
    140             if delay:
    141                 log.warn("""
    142 ---------------------------------------------------------------------------
    143 This script requires setuptools version %s to run (even to display
    144 help).  I will attempt to download it for you (from
    145 %s), but
    146 you may need to enable firewall access for this script first.
    147 I will start the download in %d seconds.
    148 
    149 (Note: if this machine does not have network access, please obtain the file
    150 
    151    %s
    152 
    153 and place it in this directory before rerunning this script.)
    154 ---------------------------------------------------------------------------""",
    155                     version, download_base, delay, url
    156                 ); from time import sleep; sleep(delay)
    157             log.warn("Downloading %s", url)
    158             src = urllib2.urlopen(url)
    159             # Read/write all in one block, so we don't create a corrupt file
    160             # if the download is interrupted.
    161             data = _validate_md5(egg_name, src.read())
    162             dst = open(saveto,"wb"); dst.write(data)
    163         finally:
    164             if src: src.close()
    165             if dst: dst.close()
    166     return os.path.realpath(saveto)
    167 
    168 
    169 
    170 
    171 
    172 
    173 
    174 
    175 
    176 
    177 
    178 
    179 
    180 
    181 
    182 
    183 
    184 
    185 
    186 
    187 
    188 
    189 
    190 
    191 
    192 
    193 
    194 
    195 
    196 
    197 
    198 
    199 
    200 
    201 
    202 
    203 def main(argv, version=DEFAULT_VERSION):
    204     """Install or upgrade setuptools and EasyInstall"""
    205     try:
    206         import setuptools
    207     except ImportError:
    208         egg = None
    209         try:
    210             egg = download_setuptools(version, delay=0)
    211             sys.path.insert(0,egg)
    212             from setuptools.command.easy_install import main
    213             return main(list(argv)+[egg])   # we're done here
    214         finally:
    215             if egg and os.path.exists(egg):
    216                 os.unlink(egg)
    217     else:
    218         if setuptools.__version__ == '0.0.1':
    219             print >>sys.stderr, (
    220             "You have an obsolete version of setuptools installed.  Please
    "
    221             "remove it from your system entirely before rerunning this script."
    222             )
    223             sys.exit(2)
    224 
    225     req = "setuptools>="+version
    226     import pkg_resources
    227     try:
    228         pkg_resources.require(req)
    229     except pkg_resources.VersionConflict:
    230         try:
    231             from setuptools.command.easy_install import main
    232         except ImportError:
    233             from easy_install import main
    234         main(list(argv)+[download_setuptools(delay=0)])
    235         sys.exit(0) # try to force an exit
    236     else:
    237         if argv:
    238             from setuptools.command.easy_install import main
    239             main(argv)
    240         else:
    241             print "Setuptools version",version,"or greater has been installed."
    242             print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)'
    243 
    244 def update_md5(filenames):
    245     """Update our built-in md5 registry"""
    246 
    247     import re
    248 
    249     for name in filenames:
    250         base = os.path.basename(name)
    251         f = open(name,'rb')
    252         md5_data[base] = md5(f.read()).hexdigest()
    253         f.close()
    254 
    255     data = ["    %r: %r,
    " % it for it in md5_data.items()]
    256     data.sort()
    257     repl = "".join(data)
    258 
    259     import inspect
    260     srcfile = inspect.getsourcefile(sys.modules[__name__])
    261     f = open(srcfile, 'rb'); src = f.read(); f.close()
    262 
    263     match = re.search("
    md5_data = {
    ([^}]+)}", src)
    264     if not match:
    265         print >>sys.stderr, "Internal error!"
    266         sys.exit(2)
    267 
    268     src = src[:match.start(1)] + repl + src[match.end(1):]
    269     f = open(srcfile,'w')
    270     f.write(src)
    271     f.close()
    272 
    273 
    274 if __name__=='__main__':
    275     if len(sys.argv)>2 and sys.argv[1]=='--md5update':
    276         update_md5(sys.argv[2:])
    277     else:
    278         main(sys.argv[1:])
    View Code

        (1、)直接将上面这一代码复制出来,保存一下。文件名为ez_setup.py   记得扩展名是py。

        (2、)控制台中(cmd)直接输入 python ez_setup.py   (网上直接的资料直接运行ez_setup.py   这样我没成功)

            最后结果:

    1. D:>ez_setup.py
    2. Downloading http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
    3. Processing setuptools-0.6c11-py2.7.egg
    4. Copying setuptools-0.6c11-py2.7.egg to d:python27libsite-packages
    5. Adding setuptools 0.6c11 to easy-install.pth file
    6. Installing easy_install-script.py script to D:Python27Scripts
    7. Installing easy_install.exe script to D:Python27Scripts
    8. Installing easy_install.exe.manifest script to D:Python27Scripts
    9. Installing easy_install-2.7-script.py script to D:Python27Scripts
    10. Installing easy_install-2.7.exe script to D:Python27Scripts
    11. Installing easy_install-2.7.exe.manifest script to D:Python27Scripts
    12. Installed d:python27libsite-packagessetuptools-0.6c11-py2.7.egg
    13. Processing dependencies for setuptools==0.6c11
    14. Finished processing dependencies for setuptools==0.6c11   

    如果你到这里说明你这个安装成功了,在你的python安装目录下的script目录中会出现一些文件接下来继续在环境变量中添加一些东西,这个是setuptools的环境变量。在path中将e:pythonscript(我的路径)添加进去。

      3、接下来是安装django

        (1、在控制台中输入:easy_install diango  最后结果就是

    1. C:UsersBiao>easy_install django
    2. Searching for django
    3. Reading http://pypi.python.org/simple/django/
    4. Reading http://www.djangoproject.com/
    5. Reading http://www.djangoproject.com/m/bad-installer.txt
    6. Best match: Django 1.4.2
    7. Downloading https://www.djangoproject.com/m/releases/1.4/Django-1.4.2.tar.gz
    8. Processing Django-1.4.2.tar.gz
    9. Running Django-1.4.2setup.py -q bdist_egg --dist-dir c:usersiaoappdatalocal empeasy_install-tahhsuDjango-1.4.2egg-dist-tmp-0hpiac
    10. zip_safe flag not set; analyzing archive contents...
    11. django.contrib.admindocs.views: module references __file__
    12. django.contrib.auth.tests.context_processors: module references __file__
    13. django.contrib.auth.tests.forms: module references __file__
    14. django.contrib.auth.tests.views: module references __file__
    15. django.contrib.flatpages.tests.csrf: module references __file__
    16. django.contrib.flatpages.tests.middleware: module references __file__
    17. django.contrib.flatpages.tests.templatetags: module references __file__
    18. django.contrib.flatpages.tests.views: module references __file__
    19. django.contrib.formtools.tests.__init__: module references __file__
    20. django.contrib.formtools.tests.wizard.namedwizardtests.tests: module references __file__
    21. django.contrib.formtools.tests.wizard.wizardtests.tests: module references __file__
    22. django.contrib.gis.geometry.test_data: module references __file__
    23. django.contrib.gis.tests.geo3d.tests: module references __file__
    24. django.contrib.gis.tests.geogapp.tests: module references __file__
    25. django.contrib.gis.tests.layermap.tests: module references __file__
    26. django.contrib.sitemaps.tests.base: module references __file__
    27. django.contrib.staticfiles.storage: module references __file__
    28. django.core.management.sql: module references __file__
    29. django.core.management.templates: module references __path__
    30. django.core.management.__init__: module references __file__
    31. django.core.management.__init__: module references __path__
    32. django.core.management.commands.loaddata: module references __file__
    33. django.core.management.commands.loaddata: module references __path__
    34. django.core.management.commands.makemessages: module references __file__
    35. django.core.servers.basehttp: module references __path__
    36. django.db.utils: module references __file__
    37. django.db.models.loading: module references __file__
    38. django.template.loaders.app_directories: module references __file__
    39. django.test._doctest: module references __file__
    40. django.test._doctest: module MAY be using inspect.getsourcefile
    41. django.utils.autoreload: module references __file__
    42. django.utils.module_loading: module references __path__
    43. django.utils.version: module references __path__
    44. django.utils.translation.trans_real: module references __file__
    45. django.utils.translation.__init__: module references __file__
    46. django.utils.unittest.collector: module references __file__
    47. django.utils.unittest.loader: module references __file__
    48. django.views.i18n: module references __file__
    49. Adding django 1.4.2 to easy-install.pth file
    50. Installing django-admin.py script to D:Python27Scripts
    51. Installed d:python27libsite-packagesdjango-1.4.2-py2.7.egg
    52. Processing dependencies for django
    53. Finished processing dependencies for django
    54. C:UsersBiao>python
    55. Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
    56. Type "help", "copyright", "credits" or "license" for more information.
    57. >>> import django
    58. >>> exit()

    django已安装成功。

      4、接下来就需要安装numpy(同样也可以像上面一样直接:easy_install numpy) 可惜我没有安装成功,这倒不是网络问题。最后下载了一个安装包才安装成功。

        安装文件为: numpy-unoptimized-1.6.2.win-amd64-py2.7.exe。下载完成后直接运行就可以了  同样的都是直接下一步就可以了。

        同样的在控制台中输入python  然后在控制界面输入  import numpy   如果没报错恭喜你安装成功。

      5、到这里基本就成功90%了  接下来我们只需要安装pip就可以了

        同样的打开控制台在入到 e:pythonscript  然后敲入命令 easy_install pip 然后等安装完成就ok啦

      6、最后一步安装selenium 

        在控制台中进入E:pythonscript   然后输入命令:pip install selenium  或者pip install  -U selenium

     最后如果没有报错那么就安装成功了,赶快去试一下吧!!!!

        

  • 相关阅读:
    ETL概念集锦
    想要快速泡大麦茶的4种方法
    Suggest blowing out the dust
    Pessimistic and optimistic locking
    操作系统简介
    初学计算机基础
    JavaScript筑基篇(三)->JS原型和原型链的理解
    网页瀑布流效果实现的几种方式
    javascript的基本语法、数据结构
    javascript如何列出全局对象的非原生属性。
  • 原文地址:https://www.cnblogs.com/Mushishi_xu/p/4048552.html
Copyright © 2020-2023  润新知