sync notes(auto)
This commit is contained in:
parent
5adf396634
commit
61b42f722b
2 changed files with 4 additions and 3 deletions
|
@ -1,8 +1,9 @@
|
|||
# 20240311135526 pip installでerror externally-managed-environment
|
||||
#python #linux
|
||||
windowsやmacでは関係ないのかもしれない。
|
||||
|
||||
PEP 668で「OSで使う重要なpythonに安易にpip install できてしまい、aptなどのOSでのソフト管理の外からいじれるのはよろしくない」ということになった。そのため、従来の `pip install` でライブラリをインストールする記事などは、適宜読みかえが必要。 エラーメッセージに書いてあるように、 python3-[パッケージ名] という名前でOS管理のパッケージがあることが多い。
|
||||
(windowsやmacでは関係ないのかもしれない)
|
||||
|
||||
PEP 668で「OSで使う重要なpythonに、安易にpip install でき、aptなどのOSでのソフト管理の外からいじれるのはよろしくない」ということになった。そのため、従来の `pip install` でライブラリをインストールする記事などは、適宜読みかえが必要。 エラーメッセージに書いてあるように、 python3-[パッケージ名] という名前でOS管理のパッケージがあることが多い。
|
||||
```
|
||||
To install Python packages system-wide, try apt install
|
||||
python3-xyz, where xyz is the package you are trying to
|
||||
|
|
|
@ -42,7 +42,7 @@ int main(void)
|
|||
```
|
||||
画面に表示されるのは`0`になる。`f1()`の中で、 `int a`を再度定義しているが、それは `f1()`内部のみで有効であり、呼びだされた関数`f2()`では有効ではない。これがレキシカルスコープ。
|
||||
|
||||
ここで、`f1()`で定義した`int a`を`f2()`でも、(この書きかただと)参照できてしまうのが、ダイナミックスコープ。
|
||||
ここで、`f1()`で定義した`int a`を`f2()`でも、この書きかただと、`f1()`を通過しているゆえ、参照できてしまうのが、ダイナミックスコープ。
|
||||
その場合、画面には`1`が表示される(実際に試すことはできないけど)。
|
||||
|
||||
レキシカルスコープの言語では、変数名とその参照先は一意に決まる。実行された状況などに左右されない。ここでいう一意というのは、「同じ名前の変数が色々定義されてた場合、そのうちのどれ?」というのが(つまり、環境フレームが)一意という意味であって、その中身は実行された状況に左右されない、というわけではない。
|
||||
|
|
Loading…
Reference in a new issue