Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#41591 closed defect (fixed)

python34 @3.4.0b1_1 conflicts with py34-setuptools @1.4.1 on easy_install-3.4

Reported by: mojca (Mojca Miklavec) Owned by: jyrkiwahlstedt
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: jmroot (Joshua Root), seanfarley (Sean Farley), petrrr
Port: python34 py34-setuptools

Description

Trying to install py34-setuptools ended up with:

x ./opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/__pycache__/easy_install.cpython-34.pyc
x ./opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/__pycache__/pkg_resources.cpython-34.pyc
x ./opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/easy_install
x ./opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/easy_install-3.4
x ./opt/local/bin/easy_install-3.4
Error: org.macports.activate for port py34-setuptools returned: Image error: /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/easy_install-3.4 is being used by the active python34 port.  Please deactivate this port first, or use 'port -f activate py34-setuptools' to force the activation.
Warning: targets not executed for py34-setuptools: org.macports.activate
Error: Failed to install py34-setuptools
Please see the log file for port py34-setuptools for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_python_py-setuptools/py34-setuptools/main.log
Error: The following dependencies were not installed: py34-setuptools
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets

I stumbled upon this while testing #41334.

Change History (5)

comment:1 Changed 11 years ago by mojca (Mojca Miklavec)

Cc: Peter.Danecek@… added

comment:2 Changed 11 years ago by jmroot (Joshua Root)

Cc: jmr@… sean@… added
Owner: changed from jmr@… to jwa@…
Port: python34 py34-setuptools added; py-setuptools removed
Summary: py-setuptools @1.4.1: easy_install-3.4 is already provided by python34python34 @3.4.0b1_1 conflicts with py34-setuptools @1.4.1 on easy_install-3.4

comment:3 Changed 11 years ago by ned-deily (Ned Deily)

See last paragraph of #41549. r113947 did not address that part.

comment:4 Changed 11 years ago by jyrkiwahlstedt

Resolution: fixed
Status: newclosed

changed the configuration in r114107 not to install these, then, however, it must be asked, whether it would make more sense to change setuptools and pip packages, are they needed at all, if they are provided by the base

comment:5 Changed 11 years ago by ned-deily (Ned Deily)

Python PEP 453 has a section with recommendations for downstream distributors. The basic ideas are that: (1) upstream python-dev has now blessed the third-party pip project as "the one obvious way" to install packages (outside of a package management system like MacPorts). (2) python-dev wants to ensure that pip is always available to end-users (for the upcoming 3.4 release, at least). (3) To that end, there is now the bundled version of pip in the source release ensuring that there is a minimum level of pip available for install. (4) It is not the intent of the PEP to preclude installing newer versions of pip as they are released. (5) Thus, the best solution for distributors like MacPorts would be to disable the install of the built-in version of pip, as was done in r114107, and to make a py34-pip port as a run dependency of python34.

setuptools is only included in the built-in wheel for pip because it currently supplies some resources for pip but the pip project is looking to remove that dependency in the future. So py34-pip should declare a dependency on py34-setuptools, but python34 should not. Also, PEP 453 originally proposed implementing ensurepip for the current maintenance releases, python33 and python27, as well. That requirement was reluctantly removed from the final approved PEP so as not to violate the python-dev policy of no new features in maintenance releases. However, there is nothing preventing third-party distributors from taking the user-friendly step of adding py33-pip and py27-pip as dependencies for their respective Pythons.

Note: See TracTickets for help on using tickets.