python27-2.7.6_2 doesn't have pkg_resources?

Kubilay Kocak koobs.freebsd at gmail.com
Tue Feb 11 08:25:08 UTC 2014


On 11/02/2014 9:35 AM, Scott Sturdivant wrote:
> Hi Kubilay,
> 
> It looks like the FreeBSD 9.2 repo has py27-virtualenv 1.10.1 as the
> latest. I've got a poudriere machine that has built 1.11.2.
> 
> When installing virtualenv 1.11.2, I'm not getting the dependency on
> py27-setuptools and as such it lets me install py27-virtualenv 1.11.2, then
> errors out when trying to create a virtualenv.
> 
> Looking at this commit (
> https://github.com/freebsd/freebsd-ports/commit/cdcc5f4edbe977fdcab31bd9f52ed18067bc9a57),
> is it possible that the removal of SETUPTOOLSVER means that it's no longer
> a run dependency?  Sorry, I don't know enough about the macro magic...
> 
> Thanks,
> 
> Scott
> 
> 
> On Mon, Feb 10, 2014 at 2:25 PM, Kubilay Kocak <koobs.freebsd at gmail.com>wrote:
> 
>> On 11/02/2014 7:48 AM, Scott Sturdivant wrote:
>>> Thanks William, that indeed does appear to be the issue.  Sorry for the
>>> noise, and thanks again for the pointer to the right direction!
>>>
>>>
>>> On Mon, Feb 10, 2014 at 1:43 PM, William Grzybowski <william88 at gmail.com
>>> wrote:
>>>
>>>>
>>>> On Mon, Feb 10, 2014 at 6:07 PM, Scott Sturdivant <
>>>> scott.sturdivant at gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> With the latest FreeBSD package (2.7.6_2), the pkg_resource module
>> seems
>>>>> to
>>>>> be broken:
>>>>>
>>>>> # pkg info | grep python27
>>>>> python27-2.7.6_2               Interpreted object-oriented programming
>>>>> language
>>>>> # /usr/local/bin/python2.7 -c 'import pkg_resources'
>>>>> Traceback (most recent call last):
>>>>>   File "<string>", line 1, in <module>
>>>>> ImportError: No module named pkg_resources
>>>>>
>>>>>
>>>>> This was not the case on 2.7.6_1:
>>>>>
>>>>> # pkg info | grep python27
>>>>> python27-2.7.6_1               Interpreted object-oriented programming
>>>>> language
>>>>> # /usr/local/bin/python2.7 -c 'import pkg_resources'
>>>>> #
>>>>>
>>>>>
>>>>> This impact other packages such as py27-virtualenv.  If i try to
>> create a
>>>>> virtualenv, it immediately aborts with the error that pkg_resources
>>>>> doesn't
>>>>> exist.
>>>>>
>>>>> Am I doing something wrong?
>>>>>
>>>>
>>>> AFAIK pkg_resources comes from devel/py-setuptools, not from
>>>> lang/python2.7 .
>>>> It sounds like devel/py-virtualenv is broken and should have an explicit
>>>> run dependency for devel/py-setuptools.
>>>>
>>>>
>>>>
>>>> --
>>>> William Grzybowski
>>>> ------------------------------------------
>>>> Curitiba/PR - Brasil
>>>>
>>> _______________________________________________
>>> freebsd-python at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-python
>>> To unsubscribe, send any mail to "freebsd-python-unsubscribe at freebsd.org
>> "
>>>
>>
>> Hi Scott,
>>
>> I updated the pip, virtualenv and virtualenvwrapper ports yesterday to
>> their respective latest upstream versions. I'm not sure if you're
>> reporting your issue after updating, but if you haven't already
>> upgraded, try the latest.
>>
>> Note: The previous to current version delta is pretty big, and there are
>> a number of backwards incompatible changes in at least virtualenv and
>> pip. Read the Changes URL's that were included in the commit message for
>> each.
>>
>> Let me know if you come across anything in the port updates that I may
>> have overlooked. If you find an upstream commit for the issue, I'll back
>> port it.
>>
>> --
>> koobs
>>
> 

A few things to add:

py-virtualenv has an implicit setuptools build time dependency
(BUILD_DEPENDS) set because the port  uses USE_PYDISTUTILS=yes which does:

------------
.if defined(USE_PYDISTUTILS) && ${_CURRENTPORT} !=
${PYTHON_PKGNAMEPREFIX}setuptools
BUILD_DEPENDS+=
${PYTHON_PKGNAMEPREFIX}setuptools>0:${PORTSDIR}/devel/py-setuptools
------------

The same is not set for setuptools as a *run* time dependency
(RUN_DEPENDS), BUT ..

The last commit replaced USE_PYDISTUTILS=easy_install with
USE_PYDISTUTILS=yes. The previous value of =easy_install does this:

------------
.if defined(USE_PYDISTUTILS) && ${USE_PYDISTUTILS} == "easy_install"
RUN_DEPENDS+=           ${PYEASYINSTALL_CMD}:${PORTSDIR}/devel/py-setuptools
------------

To test, I installed the latest virtualenv via ports (not the package),
and tested virtualenv creation:

`virtualenv test`
New python executable in test/bin/python2.7
Also creating executable in test/bin/python
Installing setuptools, pip...done.

I then remove py-setuptools, which exists because I use ports and dont
remove build dependencies, and I see your issue:

------------
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
------------

I think this issue extends to all Python modules with console scripts
that are installed via packages.

I can reproduce the same results with py-nose (`nosetests`) and py-tox
(`tox`):

------------
Traceback (most recent call last):
  File "/usr/local/bin/nosetests", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

Traceback (most recent call last):
  File "/usr/local/bin/tox", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
------------

I'll sort out a permanent resolution shortly.

In the meantime, install the setuptools package to compensate and please
confirm that this resolves the issue for you.

--
koobs







More information about the freebsd-python mailing list