> On 12 Jan 2020, at 16:20, mus...@posteo.org wrote:
> 
> Hi guys,
> 
> after I got the whole list into a lather about the merits of
> the python-config program, let me rephrase the question:
> 
> Is there a "canonical" way of automatically finding the correct
> include files and Python runtime library when embedding the Python
> interpreter, based on the current virtual environment (and not the
> "installed" version)? Upon reding the docs there isn't. And maybe there
> should't or cant be any. So if I want to try embedding Python under
> different versions I have to either install those into different
> directories and use python-config, or I write a trivial Python program
> that finds the correct values for the current environment using
> sysconfig and outpus those as compiler / linker flags. Easy enough, I
> was just surprised that no such solution was already built into the
> virtualenv setup mechanism
> 
> Here's a quote from the docs
> """
> If this procedure [using python-config] doesn’t work for you (it is not
> guaranteed to work for all Unix-like platforms; however, we welcome bug
> reports) you will have to read your system’s documentation about
> dynamic linking and/or examine Python’s Makefile (use
> sysconfig.get_makefile_filename() to find its location) and compilation
> options. In this case, the sysconfig module is a useful tool to
> programmatically extract the configuration values that you will want to
> combine together. For example:
> 
>>>> import sysconfig
>>>> sysconfig.get_config_var('LIBS')
> '-lpthread -ldl  -lutil'
>>>> sysconfig.get_config_var('LINKFORSHARED')
> '-Xlinker -export-dynamic'
> """

I build a python C++ extension called pysvn. It's build system works
by running a python program to generate a native makefile for
Windows, macOS, Fedora, NetBSD etc. The code support
python 2 and all the python 3's.

I have all the python versions installed on my build systems
side-by-side. I did not need to use venv as all the python's
are installled into the systems.

Maybe you can use some of the ideas from the code.
See this module:

https://svn.code.sf.net/p/pysvn/code/trunk/pysvn/Extension/Source/setup_configure.py
 
<https://svn.code.sf.net/p/pysvn/code/trunk/pysvn/Extension/Source/setup_configure.py>

Barry


> _______________________________________________
> Python-Dev mailing list -- python-dev@python.org
> To unsubscribe send an email to python-dev-le...@python.org
> https://mail.python.org/mailman3/lists/python-dev.python.org/
> Message archived at 
> https://mail.python.org/archives/list/python-dev@python.org/message/364Q6EZHSFN6DGUUDN3FKOMK4CDS3WJB/
> Code of Conduct: http://python.org/psf/codeofconduct/

_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/MIGP4B6FD4HFAHK4OT5SSGQDHNR74TB6/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to