181 lines
7.5 KiB
Markdown
Executable File
181 lines
7.5 KiB
Markdown
Executable File
# ⚠️ UNFINISHED PROJECT ⚠️
|
|
|
|
> This project were not finsihed because pyqt5 development was a huge pain and I didn't saw the need for such a software anymore. Nevertheless, it runs and works partly.
|
|
|
|
# Athnos
|
|
|
|
With **Athnos** you can store media files like videos, audios or images
|
|
(called `clip`) structured / sorted.
|
|
|
|
Every clip has a link or file path to the (media) file, a name, description and can have several tags.
|
|
Additionally, a clip can have a `source`. For example, if the clip is a 10-second clip from a movie, the movie can be set as the source
|
|
and each time you select the clip, you can see where it came from.
|
|
|
|
This makes **Athnos** the perfect tool for video creators who often use many and different clips/scenes, audio, images, etc.
|
|
in their videos and currently have dozens of different folders and cryptic-looking file names to somehow bring order to the pile of files.
|
|
But it's also useful for 'normal' people, like you and me, who just want to store their images or videos centrally.
|
|
|
|
Download the latest executables:
|
|
- Linux
|
|
- [Linux x64 standalone / portable]()
|
|
- [Linux x64 installer (.deb)]()
|
|
|
|
- Windows
|
|
- [Windows 10 x64 standalone / portable]()
|
|
- [Windows 10 x64 installer]()
|
|
|
|
The installation and other stuff (besides [Todo](#todo) and [License](#licence)) below are just for the people, who want to
|
|
compile the code themselves and doesn't use the executables linked above.
|
|
|
|
If you only have a 32 bit, arm, etc. processor, window 8 or another reason why you can't use the already compiled versions linked above,
|
|
you have to download the source code and execute / compile it yourself. The instructions are below.
|
|
|
|
## Known issues
|
|
|
|
### Linux
|
|
- `FileNotFoundError: [Errno 2] No such file or directory 'objcopy'` when [compiling](#compile) the code with pyinstaller
|
|
|
|
Cause: PyInstaller doesn't find the `objcopy` command
|
|
|
|
Solution: Run `apt install binutils`, which installs `objcopy`
|
|
|
|
- `staticx: Couldn't find 'patchelf'. Is 'patchelf' installed?` when 're-building' the pyinstaller executable with staticx
|
|
|
|
Cause: staticx doesn't find the `patchelf` module
|
|
|
|
Solution: Run `apt install patchelf`, which installs `patchelf`
|
|
|
|
- ```...dlopen: /lib/x86_64-linux-gnu/libc.so.6: version ``GLIBC_2.x' not found...``` when try to run
|
|
|
|
Cause: This means that the file was compiled with a newer `glibc` version, than the one on your system.
|
|
Usually happens if you compile the file on your computer and try to execute it on another one with an older `glibc` version.
|
|
|
|
Solution: If you compiled the file yourself, re-compile it and after that follow the instructions [here](#create-real-independent-file).
|
|
If you downloaded the file from here, download it again ([latest version]()) and if the is still there when running the new file,
|
|
open a new [issue]()
|
|
|
|
- `[12345] Cannot open self /tmp/staticx-*/main or archive /tmp/staticx-*/main.pkg` when try to run
|
|
|
|
Cause: When a pyinstaller executable was 're-built' with [staticx](#create-real-independent-file).
|
|
Usually happens if pyinstaller creates a executable, which can't be 're-build' correctly with staticx
|
|
|
|
Solution: If you compiled the file yourself, use pyinstaller version 4.0, instead of the newest version an then [compile it again](#compile-linux)
|
|
If you downloaded the file from here, download it again ([latest version]()) and if the is still there when running the new file,
|
|
open a new [issue]()
|
|
|
|
## Installation🎰
|
|
|
|
### Linux
|
|
|
|
1. Install the required apt packages. **Note: The python3 version must be 3.6 or higher!**
|
|
```bash
|
|
apt install git
|
|
apt install python3
|
|
apt install python3-pip
|
|
apt install python3-pyqt5
|
|
apt install python3-pyqt5.qtsql
|
|
```
|
|
|
|
2. Then clone the repository and install its requirements
|
|
```bash
|
|
git clone https://github.com/ByteDream/athnos.git
|
|
cd athnos/
|
|
pip3 install -r requirements.txt
|
|
```
|
|
|
|
### Windows
|
|
1. Download the latest python version from [here](https://www.python.org/downloads/) (at least version 3.6 or higher) and install it.
|
|
|
|
2. Download the [repository](https://github.com/ByteDream/athnos/archive/master.zip) and unzip it (e.g. with [7zip](https://www.7-zip.org/)).
|
|
|
|
3. Open the unzipped folder in the [cmd](https://www.minitool.com/news/how-to-open-a-file-folder-cmd.html).
|
|
|
|
4. Install PyQt5 and the requirements
|
|
```cmd
|
|
pip install pyqt5
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Run🚀
|
|
|
|
After the [setup](#installation) is done, you can run **athnos** via
|
|
|
|
- `python3 main.py` on **Linux**
|
|
- `python main.py` on **Windows** (or just double click `main.py`)
|
|
|
|
|
|
## Compile🔨
|
|
|
|
If you want to compile independent executables, the [installation](#installation) has to be done first.
|
|
|
|
<h3 id="compile-linux">Linux</h3>
|
|
|
|
1. Go into the `athnos` folder and execute the following commands
|
|
```bash
|
|
pip3 install pyinstaller
|
|
pyinstaller --noconsole --onefile main.py
|
|
```
|
|
The path of the generated executable is `dist/main`.
|
|
|
|
Note that if you share the file with other systems,
|
|
the other systems `glibc` version must be equal or higher than the one on your system, because some python libraries
|
|
packed in the `main` file rely on them. If you want to make the file 'real' independent, see the next paragraph
|
|
|
|
##### Create real independent file
|
|
|
|
---
|
|
|
|
If you want to share the executable file with another systems which has a lower `glibc` version
|
|
(can be obtained if you run the `ldd --version` command), you need to 'rebuild' the generated `main` file.
|
|
The following method currently **only works on 64-bit machines / with 64-bit executables** and has some disadvantages:
|
|
It takes longer to startup and causes higher cpu load on startup. An alternate method is, to re-run the steps above on the oldest
|
|
system you can find / with the oldest `glibc` version.
|
|
To build the real independent file, you have to execute the following commands
|
|
```bash
|
|
apt install patchelf
|
|
pip3 install staticx
|
|
staticx dist/main dist/static_main
|
|
```
|
|
The now generated `dist/static_main` file is the independent file.
|
|
|
|
### Windows
|
|
1. Open the [cmd](https://www.minitool.com/news/how-to-open-a-file-folder-cmd.html) in the `athnos` folder and execute the following commands
|
|
```cmd
|
|
pip install pyinstaller
|
|
pyinstaller --noconsole --onefile main.py
|
|
```
|
|
|
|
2. The generated executable `main.exe` is in the new created `dist` folder
|
|
|
|
|
|
**Note: If a new major python3 version has been released lately, and you've installed this version,
|
|
PyInstaller may not work. See [here](#https://pypi.org/project/pyinstaller/#main-advantages) for all supported python3 version of PyInstaller**
|
|
|
|
|
|
If there is any issue while compiling or when you try to launch the compiled file, look at the [known issues](#known-issues).
|
|
When your issue isn't listed there or the given solution not works, feel free to open a new [issue]()
|
|
|
|
|
|
Successfully compiled (staticx and non-staticx executables) on
|
|
- Pop!_OS 20.10 with `python3.8.6`, `pyqt 5.15.0`, `pyinstaller 4.0`, `staticx 0.12.0`, `glibc 2.32`
|
|
- Ubuntu 20.04 with `python3.8.5`, `pyqt 5.14.1`, `pyinstaller 4.0`, `staticx 0.12.0`, `glibc 2.31`
|
|
- Manjaro 20.2 with `python3.8.6`, `pyqt 5.15.2`, `pyinstaller 4.0`, `staticx 0.12.0`, `glibc 2.32`
|
|
|
|
|
|
## Additional components
|
|
|
|
|
|
## Todo
|
|
|
|
- [ ] Tags for the source
|
|
- [ ] Colored tags
|
|
- [ ] Clip column hide
|
|
- [ ] Database driver download options
|
|
- [ ] Server software
|
|
- [ ] Custom style
|
|
- [ ] Optional plugins (e.g. direct download a youtube video by its link)
|
|
|
|
## Licence
|
|
|
|
This project is licensed under the GNU General Public License v3.0 (GPL-3.0) - see the [LICENSE](LICENSE) file for more details
|