this post was submitted on 25 May 2024
14 points (88.9% liked)

Linux

47994 readers
1641 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I'm having a fair share of problems with OpenSuse Tumbleweed and python atm.

Coming from Linux Mint and windows.

Installing python-packages with pip was pretty easy.

But I have trouble understanding how to install the following packages on TumbleWeed:

tkCalendar

yaml for Python(311)

When I try to use pip I get prompted to use zypper.

I am stuck at this point. Do I have to use something different than zypper? What is the correct way here?

Help very much appreciated and thank you in advance!

--- Update ---

**Thanks everyone for the help! **

I could succesfully create a virtual enviroment in my Visualstudio Code and installed the needed libraries. The next step for me would be to create a executable package.

top 17 comments
sorted by: hot top controversial new old
[–] [email protected] 8 points 5 months ago* (last edited 5 months ago) (1 children)

An alternative is to use pipx : https://pipx.pypa.io/stable

Overview: What is pipx?

pipx is a tool to help you install and run end-user applications written in Python. It's roughly similar to macOS's brew, JavaScript's npx, and Linux's apt.

It's closely related to pip. In fact, it uses pip, but is focused on installing and managing Python packages that can be run from the command line directly as applications. How is it Different from pip?

pip is a general-purpose package installer for both libraries and apps with no environment isolation. pipx is made specifically for application installation, as it adds isolation yet still makes the apps available in your shell: pipx creates an isolated environment for each application and its associated packages.

pipx does not ship with pip, but installing it is often an important part of bootstrapping your system.

[–] [email protected] 1 points 5 months ago* (last edited 5 months ago) (2 children)

I installed pipx with "zypper install python311-pipx".

But I can't find a way to install the damn tkcalendar with it -> https://pypi.org/project/tkcalendar/#files

Feeling like an idiot here.

This really cant be that hard..

[–] [email protected] 6 points 5 months ago* (last edited 5 months ago) (1 children)

pipx won't work for that, it's a library.

If you are working on your own project/script, you should use virtualenv for development and install all required libraries there.
If you need it because some system installed application or part of your system does not work without it then... you are in bad place - pip is python package manager primarily used for general python development (installing depending packages, and in theory also for packaging python projects) but it should never be used as system wide package manager - you will break stuff (especially when used with sudo).

[–] [email protected] 1 points 5 months ago (1 children)

I have written a little python script with said data-picker. Therefore I need tkcalendar to run my script

[–] [email protected] 7 points 5 months ago (1 children)

You will want to use virtualenv, it creates isolated "workspace" so that system (python) packages do not conflict or mix.

https://docs.python.org/3/tutorial/venv.html

[–] [email protected] 1 points 5 months ago (1 children)

OK then I have to read about it.

I am a bit confused because the installation with pip on Linux Mint was no problem and didnt throw any errors. I could use my script in the IDE and from console.

On Tumbleweed it seems to be a lot different. From the first look I have to activate the virt. env

Do I have to do this everytime I start the script via console?

[–] [email protected] 3 points 5 months ago* (last edited 5 months ago) (1 children)

Using pip to install packages outside of venv was always a risk, (newer) pip now has this mechanism to really drive the point home that this can break stuff.

Do I have to do this everytime I start the script via console?

Yes, one way to get rid of this requirement is to package the script as binary/executable package (add pyproject.toml with some sane defaults and with proper [project.scripts]) and then install the project using pipx - pipx install -e path/to/the/project/, the -e flag stands for editable and is nice to have here as you won't have to reinstall everytime you change the script.
What pipx does is that it creates the local virtualenv, installs everything the package declares as needed and adds a special executable script into location like ~/.local/bin/ that first sources the venv and then starts the entry script - keeping everything isolated.

[–] [email protected] 3 points 5 months ago

Holy shit!

**Thank you very much! **

You did help me big time.

I'm understanding more and was successfull in installing tkcalendar and pyyaml in a virual Enviroment in VisualStudioCode. For now I can use my script.

[–] [email protected] 2 points 5 months ago (1 children)

Does the command pipx install tkcalendar give errors ?

[–] [email protected] 1 points 5 months ago (1 children)

Yes:

Note: Dependent package 'babel' contains 1 apps
  - pybabel

No apps associated with package tkcalendar. Try again with '--include-deps' to include apps of dependent packages, which are listed above. If you are attempting to install a library, pipx
should not be used. Consider using pip or a similar tool instead.
[–] [email protected] 2 points 5 months ago

Hmm. I see that the software is about five years old. The last comment in this thread is maybe useful ? https://github.com/j4321/tkcalendar/issues/79

[–] [email protected] 5 points 5 months ago* (last edited 5 months ago) (1 children)

https://unix.stackexchange.com/questions/450008/pip-vs-package-manager-for-handling-python-packages
https://unix.stackexchange.com/questions/734792/difference-between-installing-a-package-with-apt-and-pip

If you need to install an executable python program, use pipx it will create special environment for the python program so it won't break anything else in the system but it only works on packages (pipx install some-package) that have entry scripts (so can be called directly, libraries usually do not have that as you use them from other python program).

In short that error you get that tells you to use zypper is there for an important reason.

[–] [email protected] 1 points 5 months ago

Yea that messages spooked me from using pip.

[–] [email protected] 5 points 5 months ago (1 children)

There’s already some good advice here, especially about virtual environments which might be the most important new concept to learn IMO. But just to let you know - it’s not just you. The most generous view of the Python package situation is that there are a lot of different ways to do it.

[–] [email protected] 3 points 5 months ago

Yea I finally can start my script with a virtual enviroment and tkcalendar installed.

My switch from windows to linux is rough but I keep learning much new stuff.

[–] swooosh 3 points 5 months ago
[–] [email protected] -2 points 5 months ago

Python packaging and stability is a total mess. It has gotten to the point where I just look for alternative tools when I find out something new I found is written in Python.