Could Someone Give me Advice on Fedora Customization for Development Environment?

Hello there,

I am new to the Fedora community and have recently installed Fedora Workstation as my primary development environment. While I am enjoying the overall experience; I am excited to customize it further to suit my development needs.

I primarily work with Python and web development technologies; including HTML; CSS; and JavaScript. I have already installed several essential packages using DNF; but I am curious about best practices for setting up my environment for optimal performance and productivity.

I have been using Visual Studio Code; but I have heard good things about other IDEs like PyCharm and Atom. What are your thoughts on these; and are there any other IDEs that you would recommend for Python and web development on Fedora? :thinking:

I am interested in understanding the best way to manage Python packages. Should I use pip` directly; or is there a Fedora-specific tool that better integrates with the system? Also; any tips on managing virtual environments would be appreciated.

Also; I have gone through this post; https://discussion.fedoraproject.org/t/i-need-your-best-performance-tips-minitab/ which definitely helped me out a lot.

Are there any tools or extensions that you find indispensable for enhancing the Fedora experience; especially for development tasks? Custom themes; productivity tools; or terminal enhancements that you cannt live without?

Thank you for your help and assistance. :innocent:

i started as webdev on local development and after some years i found atomic variant distros that introduced me to container based development. Container development takes some time to understand, but for now i always setup containers when doing any development so much easier to manage dependencies and each container has own purpose.

even i don’t use atomic now i have VScode setup to use toolbox/distrobox, DEV containers, Remote Development, Docker and usually i have created main DEV containers for WEB dev, Python, C#/C++ and then i connect to container to do work

keeping base OS clean and not cluttered

Fedora packages a large number of python packages as RPMs.
You can install them using the software centre or use sudo dnf install from the command line.

For example requests is packed as python3-requests.

If you want to pip install then you must first create a venv and pip install packages into the venv.

As a tip use python3 -m pip not the plain pip3 then you know the pip matches the python you are running.

Not entirely true.
If a user does pip install xxx pip itself identifies that the command is run as a user and not root and tells the user that it is doing a ‘user’ install. The packages are installed under ~/.local/lib/python<version>/site-packages/ and are only available for that user. If the installation is done with root privileges they are placed under /lib/python<version>/site-packages and have the potential to overwrite some rpm installed files. ---- Which is why it is always recommended that packages installed with pip be done as the user and not as root.

A virtual environment (venv) is useful if some version of python other than the system installed version is needed, but user installed packages with pip do not need to rely on a venv exclusively.

Oh you are right. I was expecting the “externally managed” warning from pip.

Added development, python, workstation and removed gnome, nvidia