pip pip3 安裝套件時 報錯 error: externally-managed-environment

pip pip3 安裝套件時 報錯 error: externally-managed-environment

我因為開發一隻程式在Proxmox VE中的lxt容器中執行
因為是新安裝的,所以python3等環境都是全新的
之前解過,久了就忘了,因為這個環境安裝的需求會不斷發生,所以寫一篇記錄一下

執行pip3 install scapy
報錯如下
error: externally-managed-environment Read more

關於Switch改機這件事

關於Switch改機這件事

10多年前,賣遊戲的店面,偷賣改機,被抓時有所聞,wii改機抓了一波之後,就很少聽到了。

印像中,還在駭客怎麼在遊戲機中安裝軟體,本身軟體又有版本更新去限製破解的部份(所以,破解分成軟破和硬破)

軟破,只要版本更新,軟體可能就會失效(或是破解應用的漏洞被修補好),硬破因為直接失去保固,而且時不時還是有聽到硬破失效

新版的遊戲同事有光碟版和下載版,下載版就是有買遊戲使用授權,才可以下載玩遊戲。

下載版的推出比率也越來越多,switch下載版下載後,無法移轉給其他人。同一個帳號可以多台玩這些已經付費的遊戲。

連我同學和同事,他們也時不是要去買片,或玩了一陣子,要把片子賣掉。

天真的我以為,玩家想要玩破解版,就要時不時面對破解失效的問題,非常的解high,所以玩家玩正版的佔了很大的比例。而且我家人也說過,他們玩switch也是沒有人玩盜版的,看來,也是訊息錯誤加上我的孤陋寡聞。

任天堂這次告改機店面這件事之後,我發現,玩破解的人應該還不少,只是我不知道而以。

被抓的賣家,侵權過億,2年改了850台,算一算,每一台侵權11萬7千多元。

以目前FB社團上的資訊來說,二手片400~1200的選項很多
如果遊戲好玩,有收藏價值的話,這個錢也不是花不起
如果遊戲不好玩,就算只賣100元,我也覺得不值得。很多玩家玩到破關,或是不想玩了,就會拿出來交換或是販售。

我自己沒有遊戲機,不知道目前有沒有相關的試玩功能
要等了玩了之後才知道是不是自己喜歡的,我覺得是可以改進的空間
另外,二手片的市場,才能促進流通
新的遊戲機,有向下載版only的方向傾斜(PS5新機就差了幾千)
但,矛與盾的遊戲,不會結束的。
順手查了一下淘寶的改機,呵呵
其他的不說了。

至於模擬器,我手機和桌機有裝,因為沒有連接手柄,試了一下我就刪了
至於模擬器的適法性
我想我如果去唸科法所的話,應該會用這題目來寫論文吧

為了避免侵權,switch侵權,我用同意詞的圖片替代。

skype停用 TEAMS取代服務 完美平替?實在太難用了

skype停用 TEAMS取代服務 完美平替?實在太難用了

先說,發現缺了什麼
Skype會議不限時,可以錄影,TEAMS 免費會議只有40分鐘
Skype中有Copilot可以用,我都拿來產生小圖和小文案,TEAMS沒有Copilot,要我們改用別的服務
Skype加人(聯絡人),可以用帳號 / Email / 手機來加人通訊清單,而TEAMS只能透過連結

目前直接用skype帳號登入TEAMS後,可以取回之前的訊息,我可以轉到2019年的資料出來,再久的資料我就沒有試了。

以前公務用,信箱申請skype,就可以用Email加到通訊清單中
現在用TEAMS,要加一個新進員工進來,要產生連結
才能把入加進來

TEAMS設計的是企用使用,明白理解,是集中化管理的模式,和Skype使用模式完全不一樣
老實說,真的不好用,帳號之後,就是會議時間
從無限時間,變成只有40分鐘
落差太大了,這個學習曲線,還真的非成的不平順

你的資深和我的資深不同

你的資深和我的資深不同

我大學同學是負責設備維修的,原廠來維護時,名片上寫了資深維護工程師,一問才到職2年。

神人我同學說,他們自己的設備工程師(對接原廠的維護工程師),六年以上的才叫資深,2年的請往後站。
他們的設備工程師能做的比原廠還要多,細部分解和維修能力也比原廠的資深工程師功力高深。

你的資深和我的資深真的是定義上的不同,人力銀行一堆在找資深人員,要會的東西比SI工程師會的還要多,結果一開出來的薪水,真的是參不認睹。
PTT上面的鄉民也說,就算是同一個公司,不同的職務,都是掛資深從55K/月到100K/月都有。
有些公司重視技術職,就算不是管理職,一樣可以領的比管理職還要高。

大家的時間都很寶貴,如果找工作,應徵的工作帶有資深,可以多問一下公司給的薪資區間,再去面試,可以省下很多的時間,真的不用不好意思,公司挑你,也在也挑公司,大家有一定的互信基礎,工作會比較快樂。

3分快整啟動 Proxmox VE VM 中的VNC

3分快整啟動 Proxmox VE VM 中的VNC

因為部份家中的服務是使用Web-UI做管理
所以純文字CLI的Terminal無法滿足所有的需求

我試過使用Docker啟用ksam Firefox 和 Chrome
ksam服務提供的方式的是透過VNC去調用Firefox 和 Chrome
但是透過tunnel時會異常

所以考慮過 VM + RDP 或是 VM+VNC

於是乎,我測了多套輕量化的Linux Redistributions
作業系統盡量輕量化,支援Firfox或是Chromium
且Base Ubuntu 或是 Debian

最後找到一個版本,我在上面加上Remmina + telegram
完成管理界面的整合

Read more

Linux環境下,安裝instaloader,出現error: externally-managed-environment

Linux環境下,安裝instaloader,出現error: externally-managed-environment

為了要省電,抓圖改用Linux平台執行,所以需在Linux VM中安裝python使用的instaloader,但是安裝時,出現下面的錯誤

sudo pip3 install instaloader
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing –break-system-packages.
hint: See PEP 668 for the detailed specification.

解法 如下
sudo apt install python3-requests
sudo apt install python3-venv
python3 -m venv .venv
source .venv/bin/activate

再執行一次安裝指令,就可以正常安裝了
sudo pip3 install instaloader

放棄PhotoPrism 改用 immich

放棄PhotoPrism 改用 immich

PhotoPrism相簿系統中,有一些功能沒有,而immich有,而且PhotoPrism操作,不如immich直接。所以,我就把PhotoPrism移掉,改用immich
一樣,是使用Docker Compose

name: immich

services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
#   file: hwaccel.transcoding.yml
#   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
– ${UPLOAD_LOCATION}:/usr/src/app/upload
– /etc/localtime:/etc/localtime:ro
env_file:
– .env
ports:
– ‘2283:2283’
depends_on:
– redis
– database
restart: always
healthcheck:
disable: false

immich-machine-learning:
container_name: immich_machine_learning
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
# Example tag: ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
# extends: # uncomment this section for hardware acceleration – see https://immich.app/docs/features/ml-hardware-acceleration
#   file: hwaccel.ml.yml
#   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference – use the `-wsl` version for WSL2 where applicable
volumes:
– model-cache:/cache
env_file:
– .env
restart: always
healthcheck:
disable: false

redis:
container_name: immich_redis
image: docker.io/redis:6.2-alpine@sha256:2ba50e1ac3a0ea17b736ce9db2b0a9f6f8b85d4c27d5f5accc6a416d8f42c6d5
healthcheck:
test: redis-cli ping || exit 1
restart: always

database:
container_name: immich_postgres
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: ‘–data-checksums’
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
– ${DB_DATA_LOCATION}:/var/lib/postgresql/data
healthcheck:
test: pg_isready –dbname=’${DB_DATABASE_NAME}’ –username=’${DB_USERNAME}’ || exit 1; Chksum=”$$(psql –dbname=’${DB_DATABASE_NAME}’ –username=’${DB_USERNAME}’ –tuples-only –no-align –command=’SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database’)”; echo “checksum failure count is $$Chksum”; [ “$$Chksum” = ‘0’ ] || exit 1
interval: 5m
start_interval: 30s
start_period: 5m
command:
[
‘postgres’,
‘-c’,
‘shared_preload_libraries=vectors.so’,
‘-c’,
‘search_path=”$$user”, public, vectors’,
‘-c’,
‘logging_collector=on’,
‘-c’,
‘max_wal_size=2GB’,
‘-c’,
‘shared_buffers=512MB’,
‘-c’,
‘wal_compression=on’,
]
restart: always

volumes:
model-cache:

—-
環境變數要加外建 .env
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library
# The location where your database files are stored
DB_DATA_LOCATION=./postgres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC

# The Immich version to use. You can pin this to a specific version like “v1.71.0”
IMMICH_VERSION=release

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=postgres

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich