changes in sourceloader such that it is possible to create an executable in Windows, also the setup.py file to create the executable
This commit is contained in:
parent
719da351b1
commit
ae06855f35
5
setup.py
5
setup.py
@ -1,8 +1,11 @@
|
||||
import sys
|
||||
from cx_Freeze import setup, Executable
|
||||
|
||||
# After running the setup file (python setup.py build) the scrapy/VERSION file has to be manually put into the
|
||||
# library.zip, also the FourmiCrawler map has to be copied to both the library and the exe.win32-2.7 folder. after
|
||||
# putting the files in the library the library has to be zipped and replace the old library.
|
||||
# Dependencies are automatically detected, but it might need fine tuning.
|
||||
build_exe_options = {"packages": ["os", "scrapy", "lxml._elementpath"], "excludes": ["tkinter"]}
|
||||
build_exe_options = {"packages": ["os", "scrapy", "lxml", "w3lib", "pkg_resources", "zope.interface"], "excludes": []}
|
||||
|
||||
# GUI applications require a different base on Windows (the default is for a
|
||||
# console application).
|
||||
|
@ -1,4 +1,5 @@
|
||||
import inspect
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
from FourmiCrawler.sources.source import Source
|
||||
@ -8,17 +9,24 @@ class SourceLoader:
|
||||
sources = []
|
||||
|
||||
def __init__(self, rel_dir="FourmiCrawler\\sources"):
|
||||
path = os.path.dirname(os.path.abspath(__file__))
|
||||
path += "\\" + rel_dir
|
||||
known_parser = set()
|
||||
|
||||
if hasattr(sys,'frozen'):
|
||||
path = os.path.dirname(sys.executable)
|
||||
path += "\\" + rel_dir
|
||||
known_parser = set()
|
||||
|
||||
else:
|
||||
path = os.path.dirname(os.path.abspath(__file__))
|
||||
path += "\\" + rel_dir
|
||||
known_parser = set()
|
||||
|
||||
for py in [f[:-3] for f in os.listdir(path) if f.endswith('.py') and f != '__init__.py']:
|
||||
mod = __import__('.'.join([rel_dir.replace('\\', "."), py]), fromlist=[py])
|
||||
classes = [getattr(mod, x) for x in dir(mod) if inspect.isclass(getattr(mod, x))]
|
||||
for cls in classes:
|
||||
if issubclass(cls, Source) and cls not in known_parser:
|
||||
self.sources.append(cls()) # [review] - Would we ever need arguments for the parsers?
|
||||
known_parser.add(cls)
|
||||
self.sources.append(cls()) # [review] - Would we ever need arguments for the parsers?
|
||||
# known_parser.add(cls)
|
||||
|
||||
def include(self, source_names):
|
||||
new = set()
|
||||
|
Reference in New Issue
Block a user