-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
virtualenv doesn't work with stock Python #425
Comments
Have you tried py27-virtualenv instead of trying to build your own? F.
|
|
Ah OK, I'll have a look at why doesn't it build. F.
|
I'm fixing the problem with the virtualenv package. However, unless you have a strong reason to use a multiarch image, I'd suggest otherwise, as multiarch support for Python packages is far from solid (also explains why a lot of Python-related packages are missing in the multiarch package set). |
So, your recommendation, @mamash, is to use a 64 bits image, I guess. I have a misc of 32 and 64 bits binaries I need to run from Solaris 10. What is the difference between 32, 64 and multiarch, exactly? |
@mamash, asking around it is pretty clear I need to run multiarch. I need both 32 and 64 bits libraries available. |
Typical SunOS binaries, i.e. such that only link against libs coming from the platform, will see no effect from either 32/64/multiarch image, because the platform stays the same regardless of which image you pick. However, if they link against libraries that do not come with the platform (e.g. because they were build on a SunOS system that carried such libs, but the SmartOS platform does not) and you're hoping they will be satisfied by something from pkgsrc (a risky thing, since the versions and ABI might totally off), you'll need to match. It's easy to verify with I'm still looking into the virtualenv problem - even a fixed py27-virtualenv package will still fails on multiarch, so it's a deeper problem. |
OK, the problem with virtualenv is that it relocates (makes a copy) the Python binary, which breaks the multiarch abiexec wrapper mechanism. To avoid the problem, in addition to /opt/local/bin/python2.7, one has to copy over the /opt/local/bin/{amd64,i86}/python2.7 (real) binaries over too. You could do that manually, then re-run the virtualenv command, which should just resume and finish. While it's unlikely this could be upstreamed, it should be part of the py27-virtualenv package. I'll see if I can amend it that way. |
I almost got this working today, I'll update the ticket when the fix is in the multiarch package set. |
I'm sorry, I forgot to update this ticket. This was fixed back in November, backported to 2016Q3 and also available in the new 2016Q4 package set. In order to have virtualenv working on a multiarch image, you'll need to use the virtualenv packages from our pkgsrc repository. Stock virtualenv from upstream will still have no clue how to treat the multiarch isaexec wrappers and fail. |
Image: base-multiarch 16.3.1
System description: SmartOS image 16.3.1 (current and fully patched).
The text was updated successfully, but these errors were encountered: