2016-11-17 5 views
0

私はdjangoプロジェクトを作成しようとしています。virtualenvwrapperを使って異なるプロジェクトを隔離/サンドボックスしています。

ここで私は、その後のfoo ENVでジャンゴを設置

[email protected]:~/path/to/foo_project$ mkvirtualenv foo 
Using base prefix '/usr' 
New python executable in /home/memyself/.virtualenvs/foo/bin/python3 
Also creating executable in /home/memyself/.virtualenvs/foo/bin/python 
Installing setuptools, pip, wheel...done. 
virtualenvwrapper.user_scripts creating /home/memyself/.virtualenvs/foo/bin/predeactivate 
virtualenvwrapper.user_scripts creating /home/memyself/.virtualenvs/foo/bin/postdeactivate 
virtualenvwrapper.user_scripts creating /home/memyself/.virtualenvs/foo/bin/preactivate 
virtualenvwrapper.user_scripts creating /home/memyself/.virtualenvs/foo/bin/postactivate 
virtualenvwrapper.user_scripts creating /home/memyself/.virtualenvs/foo/bin/get_env_details 

私がこれまでに入力したコマンドは...です:

(foo) [email protected]:~/path/to/foo_project$ pip install django 
Collecting django 
    Using cached Django-1.10.3-py2.py3-none-any.whl 
Installing collected packages: django 
Successfully installed django-1.10.3 

が、私はそれから入力することにより、ジャンゴのウェブサイトを作成しようとして進みます次のコマンド:

(foo) [email protected]:~/path/to/foo_project.foo$ python django-admin.py startproject mysite 
python: can't open file 'django-admin.py': [Errno 2] No such file or directory 
(foo) [email protected]:~/path/to/foo_project.foo$ 

私が見ていたものを信じていない、私はいくつかの小切手を実行することにしました。私は怒っつもりはないことを確認してください...

(foo) [email protected]:~/path/to/foo_project.foo$ pip list --format=legacy 
Django (1.10.3) 
pip (9.0.1) 
setuptools (28.8.0) 
wheel (0.29.0) 


(foo) [email protected]:~/path/to/foo_project.foo$ pip show django 
Name: Django 
Version: 1.10.3 
Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design. 
Home-page: http://www.djangoproject.com/ 
Author: Django Software Foundation 
Author-email: [email protected] 
License: BSD 
Location: /home/memyself/.virtualenvs/foo/lib/python3.5/site-packages 
Requires: 


(foo) [email protected]:~/path/to/foo_project.foo$ which django-admin.py 
/home/memyself/.virtualenvs/foo/bin/django-admin.py 

私は私よりもずっと賢く男(S?)が作成され、virtualenvwrapperを維持している、単純なヒューリスティック(ある)を使用しています - しかし、ではないが(自動的に)新た​​に作成された環境をパスに追加することで、悪意のある人と接する無能力の悪循環を迎えます。

開発者/保守担当者が無能であることは非常にありそうもない - 私は紛れて何か愚かなことをしているという唯一の説明が残る。

SO(pun意図せず) - 私は間違っていますか?

virtualenvwrapperを使用して新しいvirt環境を作成した後、python djan-admin.py startproject xxxを単に実行できないのはなぜですか?

答えて

1

(実際には使用しないでください)を実行する必要はありません。django-admin.pyを実行してください。 pythonはあなたの$PATHを検索していません。現在のディレクトリにあるファイルを探します。 django-admin.pyに実行ビットが設定されている場合は、pythonを明示的に実行せずにコマンドとして使用できます。

django-admin startproject mysite 

あなたは.py拡張子は必要ありません:あなたは、コマンドラインを少しクリーナーを作ることができるように

はまた、django-adminとして自身をインストールします。

virtualenvが$PATHを変更する根本的な理由は、シェル(bashなど)が実行するコマンドを見つけるために使用するものです。 python foo.pyを実行すると、コマンドはpythonになり、そのために$PATHが検索されます。 foo.pyは単なるコマンド引数であり、あなたのシェルはそれをまったく探しません。 pythonが実行されると、現在のディレクトリでfoo.pyが検索されます(../otherdir/foo.pyなどの相対パスまたは/home/someone/foo.pyのような絶対パスも受け入れます)。 $PATHはまったく気にしません。

+0

くそー! ...あなたが知っている、私はあなたを信じていないので、私はあなたが示唆した両方のコマンドを試してみました。これはどんな魔法のようですか? ;)。 ** virtualenvwrapper **を使用してdjangoプロジェクトを作成する方法を示す例を見るために、チュートリアルのスコアをオンラインで検索しました** - 私は環境ファイルを使用して自分のワークスペースを "汚染"したくありませんでした。その日。あなたは+1の価値があります!ありがとう、詳細な説明のために... Doh!それは長い時間、4時間眠っている..;) –

関連する問題