Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Post History

84%
+9 −0
Q&A Adding Python 3.11 to `$PATH`

There are two possible issues that I can see. First, as already brought up in a comment thread, it appears that the export command you added in your .bashrc is missing a final ". This should cause...

posted 2y ago by Canina‭

Answer
#1: Initial revision by user avatar Canina‭ · 2022-11-01T12:55:06Z (about 2 years ago)
There are two possible issues that I can see.

First, as already brought up in [a comment thread](https://linux.codidact.com/comments/thread/6925), it appears that the `export` command you added in your `.bashrc` is missing a final `"`. This should cause an error message to be printed when starting a shell, making it an easy error to spot.

Second and **more likely to be the problem,** `$PATH` points to directories to search for executable files; it does not point directly at specific executable files. So if you have a `python` binary originally in the directory `~/cpython-3.11`, then within that directory do a `mv python python3.11`, then want to be able to start it by giving only its name (not a full path) you will need to add the directory it is in (`~/cpython-3.11`) to your `$PATH`.

Therefore, you should probably use something like

    export PATH="~/cpython-3.11:$PATH"

in your `.bashrc` in order to get the results you want.

Note that while changing `$PATH` *should* be sufficient to make the shell invalidate cached command paths, you *may* need to start a whole new bash shell for it to actually pick up on the change. You can use `type -a python3.11` to get a list of all locations which your shell currently considers candidates for executing as a bare `python3.11`, ordered by preference.