[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2020-04-26 Thread Zachary Ware


Zachary Ware  added the comment:

Given that #18976 was said to have fixed this and is now closed as "fixed", and 
every tagged version is now EOL, I'm closing the issue.

--
nosy: +zach.ware
resolution:  -> out of date
stage: test needed -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2014-03-12 Thread Éric Araujo

Éric Araujo added the comment:

FTR a patch in #18976 is said to also fix this one.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2012-12-12 Thread Andy Salnikov

Andy Salnikov added the comment:

OK, I see the problem. Do you think it would help if it tested both
sys.executable and its symlynk-resolved path against sys.exec_prefix
like this:

if sys.executable.startswith(os.path.join(sys.exec_prefix, bin)) 
or

os.path.realpath(sys.executable).startswith(os.path.join(sys.exec_prefix, 
bin)):
# building third party extensions
self.library_dirs.append(sysconfig.get_config_var('LIBDIR'))
else:
# building python standard extensions
self.library_dirs.append('.')

Alternatively one can reverse the test. I guess that 'else:' is supposed
to apply when one builds new Python installation? Where does the 
sys.executable points to in this case? Is there any other (more reliable)
way to figure out that the standard extensions are being built instead of
third-party modules?

Andy

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2012-12-12 Thread Vinay Sajip

Vinay Sajip added the comment:

In terms of the venv code, I don't see how doing the test in that way would 
cause problems - as long as the value of sys.executable doesn't change, then as 
I see it, the venv code should operate as it's meant to.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2012-12-09 Thread Vinay Sajip

Vinay Sajip added the comment:

 Vinay, do you think dereferencing sys.executable could lead to trouble with 
 venvs?

It could - the venv code looks for a venv configuration file relative to 
sys.executable, which could be a symlink into a system-wide Python 
installation. Resolving the symlink would mean that the venv can't be found.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2012-12-08 Thread Éric Araujo

Éric Araujo added the comment:

Vinay, do you think dereferencing sys.executable could lead to trouble with 
venvs?

--
nosy: +vinay.sajip

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2012-10-30 Thread Andy Salnikov

Andy Salnikov added the comment:

Hi Éric,

I am attaching a patch that fixes the problem. The patch is tiny, basically 
1-line. This replaces the direct use of sys.executable with the 
symlink-resolved version of the same path. I made the change for linux/unix 
platforms and also for cygwin/atheos (I'm sure cygwin has symlinks, not sure if 
atheos does but resolving symlinks can't hurt in general). 

The patch was created from default hg branch (3.4.0a0 I guess), I have built it 
and tested in my simple setup. The problem that we have (in 2.7) is indeed 
reproducible without this patch and it is fixed with this patch applied. 

Concerning the unit test - I'm not sure how to write one but if you have 
suggestions I could try. The complications in this case are that python needs 
to be installed in its configured location and the symlink needs to be created 
outside python install directory which points to the installed interpreter. If 
unit test could handle this then it might be possible.

I did not update any documentation, could not find any place to mention this 
change. Sure you will know better what else is needed to be updated. I'd be 
happy to help you with whatever else is necessary to commit this patch.

Cheers,
Andy

--
keywords: +patch
Added file: http://bugs.python.org/file27800/distutils-sysexecutable.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2012-10-28 Thread Andy Salnikov

Andy Salnikov added the comment:

I never submitted any patch to Python, but unless somebody more
experienced wants to contribute I can try.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2012-10-28 Thread Éric Araujo

Éric Araujo added the comment:

Great!  http://docs.python.org/devguide contains all the info needed to get the 
code and make a patch.  If you apply your suggestion to the code and it fixes 
your build, I will commit it.  A small unit test to check the new behavior of 
build_ext and avoid regressions will be needed, but it’s not always easy to 
write these tests, so depending on your time I will be able to provide guidance 
or write the test myself.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2012-10-27 Thread Éric Araujo

Éric Araujo added the comment:

Would you like to work on a patch?

--
stage:  - test needed
versions: +Python 3.2, Python 3.3, Python 3.4

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16326] distutils build_ext fails to set library_dirs in 2.7.2 on Linux

2012-10-25 Thread Andy Salnikov

New submission from Andy Salnikov:

Hi,

when trying to build extension modules with distutils I ran into
a problem that linking fails with an errors like:

gcc -pthread -shared -L build/temp.linux-x86_64-2.7/h5py/defs.o 
-L/reg/g/psdm/sw/external/hdf5/1.8.4p1/x86_64-rhel6-gcc44-opt/lib -L. 
-Wl,-R/reg/g/psdm/sw/external/hdf5/1.8.4p1/x86_64-rhel6-gcc44-opt/lib -lhdf5 
-lpython2.7 -o build/lib.linux-x86_64-2.7/h5py/defs.so
/usr/bin/ld: cannot find -lpython2.7
collect2: ld returned 1 exit status

For some reason location of the python library is not added to the 
command line with -L option.

I tracked the reason down to a particular environment that we have, 
in out environment python executable found in a $PATH is a symbolic link
to a binary installed in some non-standard location. I believe this 
piece of code in build_ext.py fails to realize this:

if sys.executable.startswith(os.path.join(sys.exec_prefix, bin)):
# building third party extensions
self.library_dirs.append(sysconfig.get_config_var('LIBDIR'))
else:
# building python standard extensions
self.library_dirs.append('.')

apparently sys.executable in our case refers to a symlink path, while 
sys.exec_prefix refers to actual installation directory.

I think fix for our case should be easy (I can't say about other cases
which may be broken by this logic), one just need to apply os.path.realpath()
to sys.executable before comparing it to sys.exec_prefix.

Andy

--
assignee: eric.araujo
components: Distutils
messages: 173796
nosy: Andy.Salnikov, eric.araujo, tarek
priority: normal
severity: normal
status: open
title: distutils build_ext fails to set library_dirs in 2.7.2 on Linux
type: compile error
versions: Python 2.7

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16326
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com