Форум сайта python.su
Добрый день.
Есть парсер написаный на python с библиотеками Grab и PyQuery.
Необходимо создать .exe для удобной передачи и простого запуска другими людми. Я скачал и установил py2exe создал файл setup.py с таким содержанием:
from distutils.core import setup import py2exe setup(console=['run.py'])
Traceback (most recent call last):
File "run.py", line 12, in <module>
File "grab\spider\__init__.pyc", line 1, in <module>
File "grab\spider\base.pyc", line 18, in <module>
ImportError: No module named dbm
try: import anydbm as dbm except ImportError: import dbm
Отредактировано Silm (Ноя. 1, 2013 08:26:55)
Офлайн
Не мучайте себя. Попробуйте cxFreeze…
Там все интуитивно понятно и есть хороший туториал.
Офлайн
4kpt_IIпопробовал cxFreeze. Те же проблемы. При создании билда заметил что cxFreeze выдает такую инфу:
Не мучайте себя. Попробуйте cxFreeze…Там все интуитивно понятно и есть хороший туториал.
Missing modules:
? BeautifulSoup imported from lxml.html.soupparser
? _dummy_threading imported from dummy_threading
? _emx_link imported from os
? _scproxy imported from urllib
? _sysconfigdata imported from distutils.sysconfig
? ce imported from os
? cssselect imported from pyquery.cssselectpatch
? cssselect.xpath imported from pyquery.cssselectpatch
? dbm imported from grab.spider.base, whichdb
? deliverance imported from pyquery.rules
? deliverance.proxycommand imported from pyquery.rules
? deliverance.pyref imported from pyquery.rules
? django.core.files.base imported from grab.ext.django
? fcntl imported from subprocess
? grp imported from shutil, tarfile
? html.entities imported from grab.tools.html, lxml.html.soupparser
? html5lib imported from lxml.html.html5parser
? html5lib.treebuilders.etree_lxml imported from lxml.html.html5parser
? java.lang imported from xml.sax._exceptions
? jsonpath_rw imported from grab.selector.selector
? netbios imported from uuid
? org.python.core imported from copy, pickle, xml.sax
? os.path imported from grab.ext.ftp, grab.spider.pattern, os, shlex, shutil
? os2 imported from os
? os2emxpath imported from os
? posix imported from os
? pwd imported from getpass, posixpath, shutil, tarfile, webbrowser
? queue imported from grab.spider.base, grab.spider.command_controller
? redis imported from grab.spider.command_controller
? requests imported from pyquery.openers
? restkit imported from pyquery
? restkit.contrib.wsgi_proxy imported from pyquery.ajax
? riscos imported from os
? riscosenviron imported from os
? riscospath imported from os
? rourl2path imported from urllib
? termios imported from getpass
? urllib.error imported from grab.proxylist
? urllib.parse imported from grab.base, grab.ext.django, grab.ext.form, grab.ext.lxml, grab.response, grab.spider.base, grab.tools.files, grab.tools.http, lxml.html, lxml.html.clean, lxml.html.html5parser, pyquery.openers, pyquery.pyquery
? urllib.request imported from grab.proxylist, grab.response, lxml.html, lxml.html.html5parser, pyquery.openers
? webob imported from pyquery, pyquery.ajax
? win32wnet imported from uuid
This is not necessarily a problem - the modules may not be needed on this platform.
try: import anydbm as dbm except ImportError: import dbm
import sys from cx_Freeze import setup, Executable build_exe_options = {"packages": ["cssselect"]} setup( name = "pareser", version = "0.1", options = {"build_exe": build_exe_options}, executables = [Executable("run.py")])
File "C:\Python27\lib\distutils\command\build.py", line 127, in run
self.run_command(cmd_name)
File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\lib\site-packages\cx_Freeze\dist.py", line 235, in run
freezer.Freeze()
File "C:\Python27\lib\site-packages\cx_Freeze\freezer.py", line 575, in Freeze
self.finder = self._GetModuleFinder()
File "C:\Python27\lib\site-packages\cx_Freeze\freezer.py", line 330, in _GetModuleFinder
finder.IncludePackage(name)
File "C:\Python27\lib\site-packages\cx_Freeze\finder.py", line 579, in IncludePackage
module = self._ImportModule(name, deferredImports)
File "C:\Python27\lib\site-packages\cx_Freeze\finder.py", line 288, in _ImportModule
raise ImportError("No module named %r" % name)
ImportError: No module named 'cssselect'
Отредактировано Silm (Ноя. 1, 2013 08:27:31)
Офлайн
setup.py
import sys from cx_Freeze import setup, Executable build_exe_options = {"packages": ["os"], "includes": ["cssselect"]} base = None if sys.platform == "win32": base = "Win32GUI" setup( name = "guifoo", version = "0.1", description = "My GUI application!", options = {"build_exe": build_exe_options}, executables = [Executable("C:\Python27\Scripts\script.py", base=base)])
Отредактировано sanodin (Ноя. 2, 2013 06:47:46)
Офлайн