diff --git a/scrapy/commands/version.py b/scrapy/commands/version.py index 4bf085c9e..a9954edb0 100644 --- a/scrapy/commands/version.py +++ b/scrapy/commands/version.py @@ -26,12 +26,25 @@ class Command(ScrapyCommand): def run(self, args, opts): if opts.verbose: + import cssselect + import parsel import lxml.etree + import w3lib + lxml_version = ".".join(map(str, lxml.etree.LXML_VERSION)) libxml2_version = ".".join(map(str, lxml.etree.LIBXML_VERSION)) + + try: + w3lib_version = w3lib.__version__ + except AttributeError: + w3lib_version = "<1.14.3" + print("Scrapy : %s" % scrapy.__version__) print("lxml : %s" % lxml_version) print("libxml2 : %s" % libxml2_version) + print("cssselect : %s" % cssselect.__version__) + print("parsel : %s" % parsel.__version__) + print("w3lib : %s" % w3lib_version) print("Twisted : %s" % twisted.version.short()) print("Python : %s" % sys.version.replace("\n", "- ")) print("pyOpenSSL : %s" % self._get_openssl_version()) diff --git a/tests/test_command_version.py b/tests/test_command_version.py index 37e1f2543..2789d207c 100644 --- a/tests/test_command_version.py +++ b/tests/test_command_version.py @@ -25,5 +25,7 @@ class VersionTest(ProcessTest, unittest.TestCase): _, out, _ = yield self.execute(['-v']) headers = [l.partition(":")[0].strip() for l in out.strip().decode(encoding).splitlines()] - self.assertEqual(headers, ['Scrapy', 'lxml', 'libxml2', 'Twisted', - 'Python', 'pyOpenSSL', 'Platform']) + self.assertEqual(headers, ['Scrapy', 'lxml', 'libxml2', + 'cssselect', 'parsel', 'w3lib', + 'Twisted', 'Python', 'pyOpenSSL', + 'Platform'])