Closed knobix closed 2 years ago
Thank you for raising your first issue! Your help to improve svglib is much appreciated!
I don't see any related change recently in source code.
I'm able to reproduce it within a fresh virtualenv:
$ python3.8 -m virtualenv venv
$ . venv/bin/activate
(venv) $ cd venv/
(venv) $ pip install svglib
Collecting svglib
[...]
Successfully built svglib
Installing collected packages: webencodings, tinycss2, cssselect2, lxml, pillow, reportlab, svglib
Successfully installed cssselect2-0.4.1 lxml-4.7.1 pillow-9.0.0 reportlab-3.6.6 svglib-1.2.0 tinycss2-1.1.1 webencodings-0.5.1
If I try to run svg2pdf
it fails although with lesser lines of backtrace info:
(venv) $ svg2pdf
Traceback (most recent call last):
File "/home/knobix/venv/bin/svg2pdf", line 5, in <module>
from svglib.svg2pdf import _main
ModuleNotFoundError: No module named 'svglib.svg2pdf'
The location of the svg2pdf
script:
(venv) $ which svg2pdf
/home/knobix/venv/bin/svg2pdf
The file contents of the script:
(venv) cat bin/svg2pdf
#!/home/knobix/venv/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from svglib.svg2pdf import _main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(_main())
If use pip install svglib==1.1.0
instead the script located at bin/svg2pdf
works as expected. Its content is also the same as in scripts/svg2pdf
of this repository.
Thanks a lot for the details. Until now, I guess the most probable offender is commit 15da63475. @victorbnl, would you be able to participate in searching what's wrong with 1.2.0? Typically, when comparing the installed trees, I can see a new entry_points.txt
file in .dist-info directory. So maybe the issue is with the conversion of the previous scripts=['scripts/svg2pdf'],
line in setup.py
to the new console_scripts = svg2pdf = svglib.svg2pdf:_main
of setup.cfg
.
https://python-packaging.readthedocs.io/en/latest/command-line-scripts.html gives explanations about the difference between scripts
and console_scripts
.
If I understand it, moving from scripts
to console_scripts
is not just changing setup things, but also moving the scripts/svg2pdf
content into the main source tree. For now, I guess it would be safer to revert that change and maybe do that move later for 1.3.0.
Just released 1.2.1. Hopefully your issue is gone now.
Just released 1.2.1. Hopefully your issue is gone now.
Indeed, I can confirm that the issue is gone now. Many thanks for the quick resolution!
Hi,
with the 1.2.0 release the included script
svg2pdf
has issues upon invocation (Python 3.8):If the script in
scripts/svg2pdf
is copied tosvglib/svg2pdf.py
before build/installation the console script runs as expected.Please let me know if you need further info.