# py38-setuptools conflict with py37-setuptools



## veryuniquename (May 8, 2021)

I have built xorg from ports and it required python3.7 and in the process installed py37-setuptools (which isn't even a specific official port, there is only py-setuptools). Now whenever I try to build something that requires python3.8 and py38-setuptools (default build from py-setuptools port) I get an error saying there is a conflict in the file "easy_install". An example: building rxvt-unicode is impossible because of this conflict.


```
Installing py38-setuptools-44.0.0_1...
pkg-static: py38-setuptools-44.0.0_1 conflicts with py37-setuptools-44.0.0 (installs files into the same place). Problematic file: /usr/local/bin/easy_install
*** Error code 1

Stop.
make: stopped ...
```

I have updated ports and extracted everything but I still get this error.

running "make deinstall" in port py-setuptools yields nothing because py38-setuptools is not installed. There is no port for py37-setuptools and removing that package will remove meson, libinput, xorg, and other packages.


----------



## free-and-bsd (May 8, 2021)

Did you read /usr/ports/UPDATING? Python default version changed 3.7 -> 3.8, and it won't be upgraded automatically.


----------



## veryuniquename (May 8, 2021)

free-and-bsd said:


> Did you read /usr/ports/UPDATING? Python default version changed 3.7 -> 3.8, and it won't be upgraded automatically.


How do I change that then?


----------



## SirDice (May 8, 2021)

veryuniquename said:


> How do I change that then?


Maybe actually read /usr/port/UPDATING?


----------



## Tieks (May 8, 2021)

/usr/port/UPDATING doesn't say what to do if you use portupgrade. Afaik py-setuptools will only be used for installation purposes, you can change from py37 to py38 this way:
`cd /usr/port/devel/py-setuptools`
`make FLAVOR=py37 deinstall`
`make FLAVOR=py38 install clean`
From 38 to 37 works this way too (I used that for something), once finished installing, you can deinstall it again.


----------



## free-and-bsd (May 11, 2021)

veryuniquename said:


> I have built xorg from ports and it required python3.7 and in the process installed py37-setuptools (which isn't even a specific official port, there is only py-setuptools). Now whenever I try to build something that requires python3.8 and py38-setuptools (default build from py-setuptools port) I get an error saying there is a conflict in the file "easy_install". An example: building rxvt-unicode is impossible because of this conflict.
> 
> 
> ```
> ...


Instead of `make deinstall`  just run `pkg remove $your_port_to_remove`. If the system knows a port is installed, you can always remove it using pkg. Then you can install your py38-setuptools.

But first of all, it looks like you build ports locally using `make install` method. That's the worst way of doing it.


----------

