Bug 537246 - RFE: python3-virtualenv
RFE: python3-virtualenv
Product: Fedora
Classification: Fedora
Component: python-virtualenv (Show other bugs)
All Linux
low Severity medium
: ---
: ---
Assigned To: Steve Milner
Fedora Extras Quality Assurance
Depends On:
Blocks: Python3F13 1010767
  Show dependency treegraph
Reported: 2009-11-12 17:02 EST by Dave Malcolm
Modified: 2015-05-06 12:14 EDT (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2015-05-06 12:14:06 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
separate specfile that builds but shows runtime errors (3.05 KB, text/plain)
2009-11-12 17:22 EST, Dave Malcolm
no flags Details
draft spec update (4.22 KB, application/octet-stream)
2011-04-13 17:08 EDT, Felix Schwarz
no flags Details
python3 support for python-virtualenv- (3.29 KB, patch)
2012-04-11 04:46 EDT, Felix Schwarz
no flags Details | Diff
python3 support for python-virtualenv-, using python3-virtualenv for the executable (3.31 KB, patch)
2012-07-12 04:15 EDT, Felix Schwarz
no flags Details | Diff

  None (edit)
Description Dave Malcolm 2009-11-12 17:02:31 EST
I'm working on adding a python 3 stack to Fedora 13, parallel-installable with
the main python 2 stack:

There are two approaches I'm experimenting with to packaging modules for python
  (a) create an separate specfile/srpm for the python 3 version
  (b) extend an existing specfile so that it emits a python3- subpackage as
part of the build.

See: https://fedoraproject.org/wiki/PackagingDrafts/Python3

We have a preliminary, working python3-setuptools rpm, though not yet in CVS/Koji (see the tracker bug)

Any idea what upstream's plans are for python 2 vs python 3 support?

Comment 1 Steve Milner 2009-11-12 17:17:00 EST
I don't know how they will be handling Python 3 users at the moment, so I opened up an issue with them to find out:


I'll if I can get it working with a 2to3 in the meantime.
Comment 2 Dave Malcolm 2009-11-12 17:20:11 EST
A simple 2to3 invocation doesn't appear to be enough; I get a runtime failure
trying to extract the big base64-encoded script files in virtualenv.py; I'm
guessing these may also need 2to3 on them even after extraction:

Traceback (most recent call last):
  File "/usr/bin/virtualenv3", line 8, in <module>
    load_entry_point('virtualenv==1.3.3', 'console_scripts', 'virtualenv3')()
  File "/usr/lib/python3.1/site-packages/pkg_resources.py", line 281, in
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3.1/site-packages/pkg_resources.py", line 2201, in
    return ep.load()
  File "/usr/lib/python3.1/site-packages/pkg_resources.py", line 1920, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/lib/python3.1/site-packages/virtualenv.py", line 1093, in <module>
AttributeError: 'str' object has no attribute 'decode'
Comment 3 Dave Malcolm 2009-11-12 17:22:27 EST
Created attachment 369337 [details]
separate specfile that builds but shows runtime errors
Comment 4 Dave Malcolm 2010-02-03 09:53:44 EST
As noted on: http://bitbucket.org/ianb/virtualenv/issue/10/python-3-support#comment-110814
> Brandon Rhodes forked and seems to have a working virtualenv3:
> http://pypi.python.org/pypi/virtualenv3
> http://bitbucket.org/brandon/virtualenv3/

It's not clear to me how "official" the fork is.

Packaging this as, say, python3-virtualenv.spec would be approach (a) in comment #0 above.
Comment 5 Steve Milner 2010-02-03 13:03:56 EST
I think (a) is going to be the best option at this point.
Comment 6 Steve Milner 2010-06-08 14:21:05 EDT
It seems like work on the fork has stopped :-(
Comment 7 Felix Schwarz 2011-04-13 16:35:41 EDT
Good news is that virtualenv 1.6 has official Python 3 support :-)
Comment 8 Felix Schwarz 2011-04-13 17:08:06 EDT
Created attachment 491905 [details]
draft spec update

I did a lot of copy/paste from python-nose to have python-virtualenv 1.6 with a python3 subpackage. No runtime testing so far.
Comment 9 Felix Schwarz 2011-04-17 16:07:15 EDT
Actually the spec above works for me on Fedora 14.
Comment 10 Felix Schwarz 2012-04-11 04:46:18 EDT
Created attachment 576707 [details]
python3 support for python-virtualenv-

proposed patch adds a Python3 subpackage for python-virtualenv. Works for me on F16.
Comment 11 Ralph Bean 2012-07-11 10:56:16 EDT
Felix, I think the patch should be revised (only slightly) to move the exectuable from "virtualenv" to "python3-virtualenv" instead of "virtualenv3" as you have done.

See the discussion of "python3-coverage" here http://fedoraproject.org/wiki/Packaging:Python

Other than that, it looks great.  Is there anything else standing in the way of applying this and creating an update?
Comment 12 Felix Schwarz 2012-07-11 14:41:10 EDT
(In reply to comment #11)
> Other than that, it looks great.  Is there anything else standing in the way
> of applying this and creating an update?

I don't have commit access to virtualenv and Steve did not express any interest in this so far. 

I'll update my patch and hopefully we can set this one as fixed then :-)
Comment 13 Felix Schwarz 2012-07-12 04:15:59 EDT
Created attachment 597734 [details]
python3 support for python-virtualenv-, using python3-virtualenv for the executable

I updated the patch so that the executable is named python3-virtualenv. I didn't test it on rawhide but the F16 version works well and I believe rawhide will just be fine as well.

One thing I noticed is that the python3 package includes '__pycache__' directory and I'm not sure if we should package that. 

I now applied for commit access to python-virtualenv, so hopefully I'll be able to resolve the bug myself soon. Would be grateful to get this bug of my plate soon.
Comment 14 Ralph Bean 2012-07-12 08:09:17 EDT
You should package it, I think; it gets re-created during runtime.  That's where the *.pyc and *.pyo files get stored for python3.
Comment 15 Dhiru Kholia 2013-04-06 02:56:27 EDT
Any updates on this?
Comment 16 Ralph Bean 2013-04-06 11:31:43 EDT
I'd note that in python 3.3, virtualenv have been moved into the core:


In my opinion, there is no longer a need for a python3-virtualenv.  With due respect for those who worked on it, I propose that the owner or reporter close this bug as wontfix.
Comment 17 Yury V. Zaytsev 2013-08-09 04:24:59 EDT
I've just tried `virtualenv` from the `python-virtualenv` package and it is able to successfully create and activate Python 3 virtualenvs (provided that `python3` package is installed, of course):

  $ virtualenv --system-site-packages -p /usr/bin/python3 py3k.env
  $ source py3k.env/bin/activate
  $ python
  Python 3.3.0 (default, Sep 29 2012, 22:33:28)

So it would appear that the problem has solved itself with time :-) Thus I second the notion that this bug can be closed.
Comment 18 Christopher Meng 2013-12-14 03:32:49 EST
But why do I see so many distros have parallel installable package of virtualenv...
Comment 19 Orion Poplawski 2015-05-06 12:14:06 EDT
This was fixed a while back.

commit 83fb3a6012a3bc5447d5a57a2893c65a49f03d8d
Author: Matthias Runge <mrunge@redhat.com>
Date:   Thu Jan 15 11:14:18 2015 +0100

    add python3 subpackage

with 1.11.6-2

Note You need to log in before you can comment on or make changes to this bug.