1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
tanwubin@MacBookForTan ~ % ls .nvm/versions/node/v24.15.0/bin
corepack node npm npx
tanwubin@MacBookForTan ~ %
# when we enable corepack,in the node directory bin will create the proxy script of pnpm and some other script
tanwubin@MacBookForTan ~ % corepack enable
tanwubin@MacBookForTan ~ % ls .nvm/versions/node/v24.15.0/bin
corepack npm pnpm yarn
node npx pnpx yarnpkg
tanwubin@MacBookForTan ~ %
tanwubin@MacBookForTan ~ % ls -l .nvm/versions/node/v24.15.0/bin
total 234272
lrwxr-xr-x 1 tanwubin staff 45 4月 15 09:45 corepack -> ../lib/node_modules/corepack/dist/corepack.js
-rwxr-xr-x 1 tanwubin staff 119944608 4月 15 09:45 node
lrwxr-xr-x 1 tanwubin staff 38 4月 15 09:45 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxr-xr-x 1 tanwubin staff 38 4月 15 09:45 npx -> ../lib/node_modules/npm/bin/npx-cli.js
lrwxr-xr-x 1 tanwubin staff 41 5月 10 15:29 pnpm -> ../lib/node_modules/corepack/dist/pnpm.js
lrwxr-xr-x 1 tanwubin staff 41 5月 10 15:29 pnpx -> ../lib/node_modules/corepack/dist/pnpx.js
lrwxr-xr-x 1 tanwubin staff 41 5月 10 15:29 yarn -> ../lib/node_modules/corepack/dist/yarn.js
lrwxr-xr-x 1 tanwubin staff 44 5月 10 15:29 yarnpkg -> ../lib/node_modules/corepack/dist/yarnpkg.js
tanwubin@MacBookForTan ~ %
# install the pnpm by the corepack
tanwubin@MacBookForTan ~ % corepack prepare pnpm@10.22.0 --activate
Preparing pnpm@10.22.0 for immediate activation...
tanwubin@MacBookForTan ~ %
# after install by the corepack,in the .cache dir will apear the real pnpm script
tanwubin@MacBookForTan ~ % ls .cache/node/corepack/v1
pnpm
tanwubin@MacBookForTan ~ % ls .cache/node/corepack/v1/pnpm
10.22.0
tanwubin@MacBookForTan ~ %
tanwubin@MacBookForTan ~ % pnpm -v
10.22.0
# later if we install package by pnpm,the package will store here
tanwubin@MacBookForTan ~ % pnpm store path
/Users/tanwubin/Library/pnpm/store/v10
tanwubin@MacBookForTan ~ %
# later we need generate video,so need download ffmpeg
tanwubin@MacBookForTan md2video % brew install ffmpeg
==> Auto-updating Homebrew...
Adjust how often this is run with `$HOMEBREW_AUTO_UPDATE_SECS` or disable with
`$HOMEBREW_NO_AUTO_UPDATE=1`. Hide these hints with `$HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
hexapoda: Colorful modal hex editor
nettle@3: Low-level cryptographic library
==> Fetching downloads for: ffmpeg
✔︎ Bottle Manifest ffmpeg (8.1.1) Downloaded 38.8KB/ 38.8KB
✔︎ Bottle Manifest dav1d (1.5.3) Downloaded 7.6KB/ 7.6KB
✔︎ Bottle Manifest libvmaf (3.1.0) Downloaded 7.7KB/ 7.7KB
✔︎ Bottle Manifest libvpx (1.16.0) Downloaded 7.3KB/ 7.3KB
✔︎ Bottle Manifest openssl@3 (3.6.2) Downloaded 12.0KB/ 12.0KB
✔︎ Bottle Manifest opus (1.6.1) Downloaded 7.3KB/ 7.3KB
✔︎ Bottle Manifest x264 (r3222) Downloaded 9.8KB/ 9.8KB
✔︎ Bottle Manifest svt-av1 (4.1.0) Downloaded 7.6KB/ 7.6KB
✔︎ Bottle Manifest lame (3.100) Downloaded 16.1KB/ 16.1KB
✔︎ Bottle Manifest sdl2 (2.32.10) Downloaded 23.0KB/ 23.0KB
✔︎ Bottle Manifest ca-certificates (2026-03-19) Downloaded 2.0KB/ 2.0KB
✔︎ Bottle ca-certificates (2026-03-19) Downloaded 132.4KB/132.4KB
✔︎ Bottle Manifest x265 (4.2) Downloaded 7.6KB/ 7.6KB
✔︎ Bottle svt-av1 (4.1.0) Downloaded 1.3MB/ 1.3MB
✔︎ Bottle lame (3.100) Downloaded 792.0KB/792.0KB
✔︎ Bottle opus (1.6.1) Downloaded 505.2KB/505.2KB
✔︎ Bottle libvmaf (3.1.0) Downloaded 1.1MB/ 1.1MB
✔︎ Bottle dav1d (1.5.3) Downloaded 364.6KB/364.6KB
✔︎ Bottle libvpx (1.16.0) Downloaded 1.9MB/ 1.9MB
✔︎ Bottle x264 (r3222) Downloaded 2.0MB/ 2.0MB
✔︎ Bottle sdl2 (2.32.10) Downloaded 1.8MB/ 1.8MB
✔︎ Bottle x265 (4.2) Downloaded 5.1MB/ 5.1MB
✔︎ Bottle openssl@3 (3.6.2) Downloaded 10.9MB/ 10.9MB
✔︎ Bottle ffmpeg (8.1.1) Downloaded 21.2MB/ 21.2MB
==> Installing dependencies for ffmpeg: dav1d, lame, libvmaf, libvpx, ca-certificates, openssl@3, opus, sdl2, svt-av1, x264 and x265
==> Installing ffmpeg dependency: dav1d
==> Pouring dav1d--1.5.3.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/dav1d/1.5.3: 16 files, 940KB
==> Installing ffmpeg dependency: lame
==> Pouring lame--3.100.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/lame/3.100: 28 files, 2.3MB
==> Installing ffmpeg dependency: libvmaf
==> Pouring libvmaf--3.1.0.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/libvmaf/3.1.0: 235 files, 7.5MB
==> Installing ffmpeg dependency: libvpx
==> Pouring libvpx--1.16.0.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/libvpx/1.16.0: 22 files, 4.4MB
==> Installing ffmpeg dependency: ca-certificates
==> Pouring ca-certificates--2026-03-19.all.bottle.tar.gz
==> Regenerating CA certificate bundle from keychain, this may take a while...
🍺 /opt/homebrew/Cellar/ca-certificates/2026-03-19: 4 files, 237.5KB
==> Installing ffmpeg dependency: openssl@3
==> Pouring openssl@3--3.6.2.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/openssl@3/3.6.2: 7,627 files, 37.6MB
==> Installing ffmpeg dependency: opus
==> Pouring opus--1.6.1.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/opus/1.6.1: 16 files, 1.1MB
==> Installing ffmpeg dependency: sdl2
==> Pouring sdl2--2.32.10.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/sdl2/2.32.10: 94 files, 6.7MB
==> Installing ffmpeg dependency: svt-av1
==> Pouring svt-av1--4.1.0.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/svt-av1/4.1.0: 23 files, 3.1MB
==> Installing ffmpeg dependency: x264
==> Pouring x264--r3222.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/x264/r3222: 12 files, 4.4MB
==> Installing ffmpeg dependency: x265
==> Pouring x265--4.2.arm64_tahoe.bottle.tar.gz
🍺 /opt/homebrew/Cellar/x265/4.2: 12 files, 17.0MB
==> Installing ffmpeg
==> Pouring ffmpeg--8.1.1.arm64_tahoe.bottle.tar.gz
==> Caveats
ffmpeg-full includes additional tools and libraries that are not included in the regular ffmpeg formula.
==> Summary
🍺 /opt/homebrew/Cellar/ffmpeg/8.1.1: 287 files, 53.5MB
==> Running `brew cleanup ffmpeg`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> Caveats
==> ffmpeg
ffmpeg-full includes additional tools and libraries that are not included in the regular ffmpeg formula.
tanwubin@MacBookForTan md2video %
tanwubin@MacBookForTan md2video % ffmpeg -version
ffmpeg version 8.1.1 Copyright (c) 2000-2026 the FFmpeg developers
built with Apple clang version 21.0.0 (clang-2100.0.123.102)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/8.1.1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libsvtav1 --enable-libopus --enable-libx264 --enable-libmp3lame --enable-libdav1d --enable-libvmaf --enable-libvpx --enable-libx265 --enable-openssl --enable-videotoolbox --enable-audiotoolbox --enable-neon
libavutil 60. 26.101 / 60. 26.101
libavcodec 62. 28.101 / 62. 28.101
libavformat 62. 12.101 / 62. 12.101
libavdevice 62. 3.101 / 62. 3.101
libavfilter 11. 14.101 / 11. 14.101
libswscale 9. 5.101 / 9. 5.101
libswresample 6. 3.101 / 6. 3.101
Exiting with exit code 0
tanwubin@MacBookForTan md2video %
# we need python, so first down uv to manage python
tanwubin@MacBookForTan md2video % brew install uv
✔︎ JSON API formula.jws.json Downloaded 32.0MB/ 32.0MB
✔︎ JSON API cask.jws.json Downloaded 15.4MB/ 15.4MB
==> Fetching downloads for: uv
✔︎ Bottle Manifest uv (0.11.13) Downloaded 8.1KB/ 8.1KB
✔︎ Bottle uv (0.11.13) Downloaded 20.4MB/ 20.4MB
==> Pouring uv--0.11.13.arm64_tahoe.bottle.tar.gz
==> Caveats
The following uv executables are shadowed by other commands earlier in your PATH:
uv (shadowed by /Users/tanwubin/.local/bin/uv)
uvx (shadowed by /Users/tanwubin/.local/bin/uvx)
Running these by name will not invoke the version provided by Homebrew.
Disable this behaviour by setting `HOMEBREW_NO_PATH_SHADOW_CHECK=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> Summary
🍺 /opt/homebrew/Cellar/uv/0.11.13: 17 files, 48.8MB
==> Running `brew cleanup uv`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> Caveats
zsh completions have been installed to:
/opt/homebrew/share/zsh/site-functions
tanwubin@MacBookForTan md2video % uv python install 3.12
Installed Python 3.12.13 in 1m 38s
+ cpython-3.12.13-macos-aarch64-none (python3.12)
tanwubin@MacBookForTan md2video % uv python list
cpython-3.15.0a8-macos-aarch64-none <download available>
cpython-3.15.0a8+freethreaded-macos-aarch64-none <download available>
cpython-3.14.4-macos-aarch64-none <download available>
cpython-3.14.4+freethreaded-macos-aarch64-none <download available>
cpython-3.13.13-macos-aarch64-none <download available>
cpython-3.13.13+freethreaded-macos-aarch64-none <download available>
cpython-3.12.13-macos-aarch64-none /Users/tanwubin/.local/bin/python3.12 -> /Users/tanwubin/.local/share/uv/python/cpython-3.12-macos-aarch64-none/bin/python3.12
cpython-3.12.13-macos-aarch64-none /Users/tanwubin/.local/share/uv/python/cpython-3.12-macos-aarch64-none/bin/python3.12
cpython-3.11.15-macos-aarch64-none <download available>
cpython-3.10.20-macos-aarch64-none <download available>
cpython-3.9.25-macos-aarch64-none <download available>
cpython-3.9.6-macos-aarch64-none /usr/bin/python3
cpython-3.8.20-macos-aarch64-none <download available>
pypy-3.11.15-macos-aarch64-none <download available>
pypy-3.10.16-macos-aarch64-none <download available>
pypy-3.9.19-macos-aarch64-none <download available>
pypy-3.8.16-macos-aarch64-none <download available>
graalpy-3.12.0-macos-aarch64-none <download available>
graalpy-3.11.0-macos-aarch64-none <download available>
graalpy-3.10.0-macos-aarch64-none <download available>
graalpy-3.8.5-macos-aarch64-none <download available>
tanwubin@MacBookForTan md2video % uv python find
/Users/tanwubin/.local/share/uv/python/cpython-3.12-macos-aarch64-none/bin/python3.12
# system default python
tanwubin@MacBookForTan md2video % python3 --version
Python 3.9.6
# uv download python
tanwubin@MacBookForTan md2video % python3.12 --version
Python 3.12.13
# based on uv to create a venv for project
tanwubin@MacBookForTan md2video % uv venv --python 3.12
Using CPython 3.12.13
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
tanwubin@MacBookForTan md2video %
# active and install requirements
tanwubin@MacBookForTan md2video % source .venv/bin/activate
(md2video) tanwubin@MacBookForTan md2video %
(md2video) tanwubin@MacBookForTan md2video %
(md2video) tanwubin@MacBookForTan md2video %
(md2video) tanwubin@MacBookForTan md2video % uv pip install -r requirements.txt
Resolved 45 packages in 4.40s
Prepared 45 packages in 35.40s
Installed 45 packages in 54ms
+ annotated-types==0.7.0
+ anyio==4.13.0
+ attrs==26.1.0
+ beautifulsoup4==4.14.3
+ certifi==2026.4.22
+ charset-normalizer==3.4.7
+ decorator==5.2.1
+ distro==1.9.0
+ h11==0.16.0
+ httpcore==1.0.9
+ httpx==0.28.1
+ idna==3.15
+ imageio==2.37.3
+ imageio-ffmpeg==0.6.0
+ jiter==0.14.0
+ markdown==3.10.2
+ markdown2==2.5.5
+ moviepy==2.2.1
+ numpy==2.4.5
+ openai==2.37.0
+ outcome==1.3.0.post0
+ packaging==26.2
+ pathlib==1.0.1
+ pillow==11.3.0
+ proglog==0.1.12
+ pydantic==2.13.4
+ pydantic-core==2.46.4
+ pydub==0.25.1
+ pysocks==1.7.1
+ python-dotenv==1.2.2
+ pyyaml==6.0.3
+ requests==2.34.2
+ selenium==4.44.0
+ sniffio==1.3.1
+ sortedcontainers==2.4.0
+ soupsieve==2.8.3
+ tqdm==4.67.3
+ trio==0.33.0
+ trio-websocket==0.12.2
+ typing-extensions==4.15.0
+ typing-inspection==0.4.2
+ urllib3==2.7.0
+ webdriver-manager==4.0.2
+ websocket-client==1.9.0
+ wsproto==1.3.2
(md2video) tanwubin@MacBookForTan md2video %
|