SORU
21 Mart 2009, CUMARTESİ


Bulundu' bash komut dosyası kaynağı kullanırken hata değil, bir 'kaynak almak:

(Düşündüğüm gibi olur) basit bir bash script yazmaya çalışıyorum.:

  1. virtualenv $1'de yeni bir ortam oluşturmak için çalıştırın
  2. sanal ortam etkinleştirin
  3. biraz daha malzeme (django yükle, virtualenv yoluna django-admin.py vb.) ekleyin.

Adım 1 oldukça iyi çalışıyor, ama virtualenv aktive edemiyorum. Virtualenv ile aşina olmayanlar için, sanal ortamda harekete geçen activate dosyası oluşturur. Sonra CLİ, source kullanarak çalıştırın

source $env_name/bin/activate

$Env_name, belli yerlerde, sanal ortam yüklü olduğu dizin adıdır.

Sanal ortam oluşturduktan sonra senaryomu, yolu bu gibi script duruma deposu:

activate="`pwd`/$ENV_NAME/bin/activate"

Ama aradığımda source "$activate",.

/home/clawlor/bin/scripts/djangoenv: 20: source: not found

$activate doğru yolu komut etkinleştirmek içeren biliyorum, hatta ben bile bir dosya source aramadan önce orada olduğunu test edin. Ama source kendisini bulamıyorum. El ile de tüm adımları her şey gayet iyi çalışıyor nerede CLİ, çalışan denedim.

Benim araştırma buldum this script, benzer istiyorum ama aynı zamanda yapmak çok başka şeyler gerek yok, depolama gibi tüm sanal ortamlarda bir ~/.dizini (veya ne olursa olsun $WORKON_HOME) virtualenv. Ama activate yol oluşturma ve temelde source "$activate" ben de aynı şekilde çağırıyor gibi geliyor bana.

Burada bütünlük içinde, senaryo:

#!/bin/sh

PYTHON_PATH=~/bin/python-2.6.1/bin/python

if [ $# = 1 ]
then
    ENV_NAME="$1"
    virtualenv -p $PYTHON_PATH --no-site-packages $ENV_NAME
    activate="`pwd`/$ENV_NAME/bin/activate"

    if [ ! -f "$activate" ]
    then
        echo "ERROR: activate not found at $activate"
        return 1
    fi

    source "$activate"
else
    echo 'Usage: djangoenv ENV_NAME'
fi

YASAL UYARI: script-fu oldukça zayıftır Benim bash. SİSTEMİNDE oldukça rahatım, ama bu işe yaramıyor son derece aptalca bir nedeni olabilir.

CEVAP
21 Mart 2009, CUMARTESİ


Komut bash ** 17 (tek bir nokta), source değil. source komut csh-izm.

Deneyin

. $env_name/bin/activate

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cole Rolland

    Cole Rolland

    23 Kasım 2008
  • DigitalRev TV

    DigitalRev T

    30 AĞUSTOS 2007
  • How to Cook ?

    How to Cook

    31 Ocak 2007