# python libraries conflict



## einsibjani (Dec 7, 2021)

I'm trying to update mail/mailman3 port to 3.3.5
It requires updating a few ports it depends on, including mail/py-aiosmtpd and www/py-falcon.

After updating py-falcon to 3.0.1 and running make install I get:


```
pkg-static: py38-falcon-3.0.1 conflicts with py38-aiosmtpd-1.2_1 (installs files into the same place).  Problematic file: /usr/local/lib/python3.8/site-packages/examples/__init__.py
*** Error code 1
```

Is there a ports mechanism in place already to deal with conflicts like these in python ports, or something else I can do?


----------



## covacat (Dec 7, 2021)

untar the pkg, hack +MANIFEST, create the pkg back
or just use pkg install -f if you are brave


----------



## einsibjani (Dec 7, 2021)

covacat said:


> untar the pkg, hack +MANIFEST, create the pkg back
> or just use pkg install -f if you are brave


Thanks for the advice, but I'm updating the port itself, to build it on our poudriere server. If successful I'll submit a patch for the ports tree.


----------



## einsibjani (Dec 8, 2021)

I guess the general question is, how to deal with python ports that assume/only work with --user? Both falcon and aiosmtpd install examples/__init__.py in site-packages. I've looked at a few other python ports and even though they have examples directories, they're not installed in site-packages/, so is the setuptools config for the packages or the ports Makefile that controls what gets installed? If it's the setuptools config, what's the best way to patch it to stop the conflicts?


----------



## Alain De Vos (Dec 8, 2021)

py38 packages install everything in /usr/local/lib/python3.8/site-packages/
Only "pip --user" installs in ~/.local/lib/python3.8/site-packages


----------



## einsibjani (Dec 8, 2021)

Alain De Vos said:


> py38 packages install everything in /usr/local/lib/python3.8/site-packages/
> Only "pip --user" installs in ~/.local/lib/python3.8/site-packages


I know, and then I see pypi packages like falcon-3.0.1 and aiosmtpd-1.2.7 that both install site-packages/examples/__init__.py. I actually think aiosmtpd fixed it in 1.4.2, I'm going to try that, but I'm still curious how to deal with python ports that install conflicting files in site-packages.


----------



## Alain De Vos (Dec 8, 2021)

Enter bugreport a, or patch the sources yourself as Examples does not seem to be essential


----------



## Andriy (Dec 8, 2021)

Maybe patch setup.py (or whatever) to use a different location for its examples.
Modules should not pollute global directories with their private stuff.


----------



## einsibjani (Dec 14, 2021)

I managed to build and install mailman 3.3.5. Upgrading py-aiosmtpd to 1.4.2 fixed the conflict. I'll try to sort out all the patches and try and get them committed


----------

