質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

1回答

1602閲覧

virtualenvをアンインストールしたい。PermissionError: Cannot move the non-empty directoryを解決する方法

kaerutyan

総合スコア2

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2022/11/10 12:08

編集2022/11/10 12:18

前提

はじめまして。PC初心者です。ターミナルでの言語や基本的な操作がわかっていないので、コマンドを調べながら操作している状態です。普段はanacondaを使用しているのですがvenvの仮想環境を作ってみたいと思い、

sudo pip3 install virtualenv

でvirtualenvの20.16.6をインストールいたしました。
このvirtualenvを削除しようと

pip3 uninstall virtualenv

を入力し

Found existing installation: virtualenv 20.16.6

と表示されました。

Would remove: /Library/Python/3.9/site-packages/virtualenv-20.16.6.dist-info/* /Library/Python/3.9/site-packages/virtualenv/* /usr/local/bin/virtualenv Proceed (Y/n)? y

でyを押したところ、以下のようなエラーが発生し削除することができませんでした。

実現したいこと

以下のエラーを解消し、virtualenvをアンインストールする

発生している問題・エラーメッセージ

以下のようなエラーが表示されてしまいました。

ERROR: Exception: Traceback (most recent call last): File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/shutil.py", line 806, in move os.rename(src, real_dst) PermissionError: [Errno 13] Permission denied: '/Library/Python/3.9/site-packages/virtualenv-20.16.6.dist-info/' -> '/private/var/folders/m2/zczpxzpj2msfwzly99jl5lnc0000gn/T/pip-uninstall-51rh_qb2' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 173, in _main status = self.run(options, args) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py", line 93, in run uninstall_pathset = req.uninstall( File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages/pip/_internal/req/req_install.py", line 633, in uninstall uninstalled_pathset.remove(auto_confirm, verbose) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py", line 384, in remove moved.stash(path) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py", line 281, in stash renames(path, new_path) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages/pip/_internal/utils/misc.py", line 331, in renames shutil.move(old, new) File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/shutil.py", line 819, in move raise PermissionError("Cannot move the non-empty directory " PermissionError: Cannot move the non-empty directory '/Library/Python/3.9/site-packages/virtualenv-20.16.6.dist-info/': Lacking write permission to '/Library/Python/3.9/site-packages/virtualenv-20.16.6.dist-info/'.

試したこと

conda uninstall virtualenv

では

Collecting package metadata (repodata.json): done Solving environment: failed PackagesNotFoundError: The following packages are missing from the target environment: - virtualenv

となりました。

sudo pip3 uninstall virtualenv

では、こちらのような警告文が表示され削除できませんでした。

WARNING: The directory '/Users/******/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag. WARNING: Skipping virtualenv as it is not installed. WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

上記エラー文で下の方に表示されている、以下の部分が問題なのではないかと考えたのですが、この部分に対しどのような対応をすればよろしいでしょうか。(アンインストールでいない原因に関係がないようでしたらすみません、無視してください。)

https://qiita.com/darianus/items/c30f755e6f51e79a3a01
こちら参考にさせていただいたのですが、初心者で削除等の操作に対して自信がないので対応する際に使用するコードについても併せて教えていただけると非常にありがたいです。

PermissionError: Cannot move the non-empty directory '/Library/Python/3.9/site-packages/virtualenv-20.16.6.dist-info/': Lacking write permission to '/Library/Python/3.9/site-packages/virtualenv-20.16.6.dist-info/'.

追記:

which virtualenv

では、

/usr/local/bin/virtualenv

と表示されました。

補足情報(FW/ツールのバージョンなど)

macOS Montereyのバージョン12.6を使用しております。
ターミナルで確認したバージョンはPython 3.7.3です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2022/11/10 23:59 編集

sudo pip3 uninstall virtualenv の警告、Skipping virtualenv as it is not installed. は 「インストールされてなかった」ということですよね。 そのpip3はどこから消そうとしたのですか? そこにインストールされていたのですか? ---- どうして /usr/local/bin に virtualenv があるのか把握されていますか? (=どうインストールしてそこに入ったか覚えていますか?) ls -l /usr/local/bin/virtualenv head -n1 /usr/local/bin/virtualenv などでなんのPythonに紐付いたvirtualenvか確認してみてください。
kaerutyan

2022/11/11 07:59

コメントありがとうございます。 >>そのpip3はどこから消そうとしたのですか? そこにインストールされていたのですか? /usr/local/binにあるものを消そうとして実行していました。(おそらく自分で入れたもの) pip3 list, pip listで確認したところ、virtualenvはpip3やpipには入っていないことがわかりました。 インストールする時に sudo pip3 install virtualenvでインストールしたので、そこに入っているものだと思ってしまっていました、、すみません。 >>どうして /usr/local/bin に virtualenv があるのか把握されていますか? (=どうインストールしてそこに入ったか覚えていますか?) この理由なのですが、どうやら自分でインストールする時にsudoをつけてインストールしてしまったことでインストール先が /usr/local/binになってしまったようです。 (意味がよくわかっていなかった状態でOKしてしまったのですが、sudo pip3 install virtualenvを実行するときに、インストール先が /usr/local/binになるという趣旨の警告が出ていたように思われます、、。) (こちらのサイトに、 https://endy-tech.hatenablog.jp/entry/never_execute_sudo_pip 「sudoをつけるとPATHの再読込が発生することで、仮想環境の外に出てしまいます。 更に、管理者権限でpip installを実行すると、--userをつけたときのような~/.local/配下ではなく、/usr/local/配下にインストールしてしまいます。」とありました。) 教えていただいたコードを実行してみたところ、このようになりました。 (base) *****@***** ~ % ls -l /usr/local/bin/virtualenv -rwxr-xr-x 1 root wheel 273 11 10 19:09 /usr/local/bin/virtualenv (base) *****@***** ~ % head -n1 /usr/local/bin/virtualenv #!/Library/Developer/CommandLineTools/usr/bin/python3
guest

回答1

0

ベストアンサー

/usr/local/bin/virtualenv と 紐付いてるPythonが /Library/Developer/CommandLineTools/usr/bin/python3 なので、明に指定してpipを動かして

sehll

1sudo /Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --force-reinstall virtualenv 2sudo /Library/Developer/CommandLineTools/usr/bin/python3 -m pip uninstall virtualenv

で該当のvirtualenvは消せるかなと思いました。

投稿2022/11/11 12:21

quickquip

総合スコア11299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaerutyan

2022/11/12 03:34

コマンドまで丁寧に教えていただき、ありがとうございました。無事に消すことができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問