jordansissel / fpm

Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity.
http://fpm.readthedocs.io/en/latest/
Other
11.09k stars 1.07k forks source link

The virtualenv source seems to be broken #2012

Closed jkugler closed 1 year ago

jkugler commented 1 year ago

FPM 1.15.1

I was trying to use the virtualenv source today. Once I figured out I was supposed to point to a source directory (and not an existing virtualenv) :) I got the error that virtualenv-tools was not installed. After installing that, I got this error (in verbose mode):

Traceback (most recent call last): {:level=>:info}
  File "/home/jkugler/.local/bin/virtualenv-tools", line 5, in <module> {:level=>:info}
    from virtualenv_tools import main {:level=>:info}
  File "/home/jkugler/.local/lib/python3.10/site-packages/virtualenv_tools.py", line 50 {:level=>:info}
    print 'A %s' % script_filename {:level=>:info}
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ {:level=>:info}
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)? {:level=>:info}

Seeing as virtualenv-tools was last touched 11 years ago (https://github.com/fireteam/virtualenv-tools) I'm guessing it doesn't support Python3.

Is the virtualenv source supported any more? Is there a work-around that doesn't require virtualenv-tools?

I'm 99% of the way to where I need to be...I just need fpm -s virtualenv to work ! :)

Thanks for a great project!

myururdurmaz commented 1 year ago

use this fork https://pypi.org/project/virtualenv-tools3/

jkugler commented 1 year ago

@myururdurmaz Thank you. It seems that project hasn't been touched in 4+ years, and doesn't support recent Python versions. I had this fail when I tried it:

Error in ./lib/python3.11/site-packages/rest_framework_simplejwt/__pycache__/compat.cpython-311.pyc {:level=>:info}
Traceback (most recent call last): {:level=>:info}
  File "/home/jkugler/.local/bin/virtualenv-tools", line 8, in <module> {:level=>:info}
    sys.exit(main()) {:level=>:info}
  File "/home/jkugler/.local/lib/python3.10/site-packages/virtualenv_tools.py", line 357, in main {:level=>:info}
    update_paths(venv, update_path) {:level=>:info}
  File "/home/jkugler/.local/lib/python3.10/site-packages/virtualenv_tools.py", line 230, in update_paths {:level=>:info}
    update_pycs(lib_dir, new_path) {:level=>:info}
  File "/home/jkugler/.local/lib/python3.10/site-packages/virtualenv_tools.py", line 180, in update_pycs {:level=>:info}
    update_pyc(filename, local_path) {:level=>:info}
  File "/home/jkugler/.local/lib/python3.10/site-packages/virtualenv_tools.py", line 122, in update_pyc {:level=>:info}
    code = marshal.load(f) {:level=>:info}
ValueError: bad marshal data (unknown type code) {:level=>:info}

I'll open a bug with them, but it doesn't look good. The best path forward may be to find a way for fpm to do what virtualenv-tools does (and just that part) so it doesn't have to depend on it.

jkugler commented 1 year ago

So, the error lies elsewhere. Opened a new issue: https://github.com/jordansissel/fpm/issues/2013