New submission from Richard Oudkerk <[email protected]>:
For Unix I follow the practice suggested in README of running configure from a
subdir of the main python directory, eg
mkdir release
cd release
../configure
make
But if I create a venv then I cannot use it to compile C extensions because the
include dirs are wrong, eg
running build
running build_ext
building 'demo' extension
gcc -pthread -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall
-Wstrict-prototypes -fPIC -I/home/user/Repos/cpython/release/Include
-I/home/user/Repos/cpython/release -c demo.c -o build/temp.linux-i686-3.3/demo.o
demo.c:1:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
The problem seems to be that distutils.sysconfig.get_python_inc() assumes that
if sys._home is set (as it is in a virtual env) then the standard header files
can be found in sys._home + '/Include'.
But for my venv this is wrong, since sys._home is
"/home/user/Repos/cpython/release" and
"/home/user/Repos/cpython/release/Include" is empty. Instead get_python_inc()
should return "/home/user/Repos/cpython/Include".
BTW, a seperate issue seems to be that ${venv}/include is not added to the list
of include dirs used when compiling.
----------
components: Library (Lib)
messages: 165589
nosy: sbt, vinay.sajip
priority: normal
severity: normal
stage: needs patch
status: open
title: venv assumes header files in sys._home + '/Include'
type: behavior
versions: Python 3.3
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue15366>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com