2016-03-09 19 views
24

bulunamadı executables Mac OS X Yosemite, sürüm 10.10.3 üzerinde çalışıyorum. Ben başarıyla paketleri yükleme ve benim piton çevre ve piton komut içine aktarabilirsiniz http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/pip paketleri başarıyla yükler, ancak komut satırı

yapıldığı gibi

Ben macport kullanarak python2.7 ve pip yüklü. Ancak, terminaldeki komut satırından çağrılabilen bir paket ile ilişkilendirilmiş herhangi bir yürütülebilir dosya bulunamadı.

Neyin yanlış olabileceğini bilen var mı? (aşağıda Daha fazla detay) Örneğin

ben çalıştırabilir http://wiki.ros.org/jade/Installation/Source

anlatıldığı gibi "rosdep" adlı bir paket kurarken: sudo pip install -U rosdep hatasız yükler ve ilgili dosyalar Ancak /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

bulunur Ben çalıştırmayı denerseniz: sudo rosdep init, bir hata veriyor: "sudo: rosdep: command not found"

Bu bir paket belirli bir hata değildir. Bunu bilgisayarımdaki pip kullanarak kurulan herhangi bir paket için alıyorum. Hatta benim $PATH için

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 

ekleyerek çalıştı. Ancak, paketler python içinden mükemmel şekilde çalışsa bile, çalıştırılabilir komutlar komut satırında bulunamadı.

+0

herhangi Virtualenv katılan? –

+0

hayır, sanalenv söz konusu değil. –

+0

sudo, root kullanıcısının $ PATH'sine geçin, sadece PATH'ın güncellendiğinden emin olun, PATH –

cevap

11

sizin $ PATH kontrol

tox sahip bir komut satırı modu: o

audrey:tests jluc$ pip list | grep tox 
tox (2.3.1) 

mı?

audrey:tests jluc$ which tox 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/tox 

ve $ PATH'mda ne var?

audrey:tests jluc$ echo $PATH 
/opt/chefdk/bin:/opt/chefdk/embedded/bin:/opt/local/bin:..../opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin... 

Bildirimi /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin? Bu, pip yüklü ürünlerimi bulmamda ne sağlar

Şimdi, şeylerin Python'dan nerede olduğunu görmek için bunu deneyin (tox için rosdep yerine). basar

$python 
>>> import tox 
>>> tox.__file__ 

:

'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tox/__init__.pyc' 

Şimdi, yukarıda sağda yer lib Yukarıdaki dizine cd. Bir bin dizini görüyor musunuz? Bu kutuda rosdep görüyor musunuz? Eğer öyleyse bin'u $ PATH'nize eklemeyi deneyin.

audrey:2.7 jluc$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7 
audrey:2.7 jluc$ ls -1 

çıkışı: MacOS üzerinde

Headers 
Python 
Resources 
bin 
include 
lib 
man 
share 
+0

Cevabınız için teşekkürler JL, ama esas olarak benim problemim. Örnek uygulama rosdep için, yaptığınız gibi, burada elde edilen çıktı: pip listesi | grep rosdep rosdep (0.11.4) (çıkış yok) rosdep (çıkış yok) komut satırı –

+1

** döndürülür; Benim amacım, "rosdep" in yüklü olduğunu ve $ PATH'ın neye benzediğini bulmanız gerektiğidir. –

+0

Teşekkürler, ben de /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin adresinde de ikili dosyalarımı kuruluyordum. Bunu PATH'ye ekledi ve şimdi çalışıyor. Teşekkürler, herhangi bir çıktı sağlamayan ikili dosyaları bulmakta zorlanıyordum. –

17

Eğer $ PATH /Users/<you>/Library/Python/2.7/bin/ eklemeniz gerekir.

pip yürütülebilir yükler nerede senin .bash_profile

export PATH="/Users/<you>/Library/Python/2.7/bin:$PATH" 

Bu ekleyin.

+4

Pip yüklemelerinin yapıldığı yer python'u nasıl yüklediğinize bağlı olarak, MacOS, macport'lar, homebrew ve sistem varsayılanı gibi python'u yüklemek için birçok yol sunar. Python'un hangi sürümüne bağlı olarak, pip için farklı konumlara sahip olacaksınız.Pipet ve pitonun nerede bulunduğunu anlamanın kolay bir yolu, terminalde "hangi pitonu" kullanmak ve ardından uygun konumu $ PATH'a eklemek olacaktır. –

+0

günümü kurtardı teşekkürler! – LoveMeow

1

Eğer --user (örn pip3.6 install --user tmuxp) kullanılarak yüklüyorsanız, it is possible to get the platform-specific user install directory from Python itself using the site module. MacOS üzerinde Örneğin,:

$ python2.7 -m site --user-base 
/Users/alexp/Library/Python/2.7 

Buna /bin ekleyerek, biz şimdi paket yürütülebilir yüklenecek yoluna sahip. PATH'yi, kabuğun rc dosyasındaki çıktıya dayalı olarak dinamik olarak doldurabiliriz; Ben Bash kullanıyorum, ancak herhangi bir şans ile bu taşınabilir:

# Add Python bin directories to path 
python3.6 -m site &> /dev/null && PATH="$PATH:`python3.6 -m site --user-base`/bin" 
python2.7 -m site &> /dev/null && PATH="$PATH:`python2.7 -m site --user-base`/bin" 

ben kesin Python sürümlerini kullanan sadece Python küçük sürümünü yükseltir zaman, örneğin "kaybolan" yürütülebilir olasılığını azaltmak için 3.5'ten 3.6'ya. Onlar, yukarıda görülebileceği gibi, kullanıcı kurulum yolunun Python versiyonunu içerebileceği için ortadan kalkacaktır. Yani python3 3.5 veya 3.6'ya işaret edebilirken, python3.6 her zaman 3.6'ya işaret edecektir. Daha fazla paket yüklerken bu durumun akılda tutulması gerekir, örn. pip3 üzerinden pip3.6 kullanın. Eğer paketler kaybolan fikrini sakıncası yoksa

, bunun yerine python2 ve python3 kullanabilirsiniz:

# Add Python bin directories to path 
# Note: When Python is upgraded, packages may need to be re-installed 
#  or Python versions managed. 
python3 -m site &> /dev/null && PATH="$PATH:`python3 -m site --user-base`/bin" 
python2 -m site &> /dev/null && PATH="$PATH:`python2 -m site --user-base`/bin"