ऐसी कोई फ़ाइल या निर्देशिका नहीं है लेकिन मैं इसे देख सकता हूँ!


11

मैं winSCP का उपयोग कर एक बिना सिर के रास्पबेरी पीआई पर एक पायथन स्क्रिप्ट चलाने की कोशिश कर रहा हूं, और निम्न त्रुटि संदेश प्राप्त कर सकता हूं:

Command '"./areadetect_movie_21.py"'
failed with return code 127 and error message
/usr/bin/env: python
: No such file or directory.

जब मैं कोशिश करता हूं और टर्मिनल से भागता हूं, मुझे मिलता है:

: No such file or directory.

मैं इसी तरह की निर्देशिका में एक ही अजगर स्क्रिप्ट की कोशिश करता हूं, एक ही अजगर शेबंग के साथ, एक ही अनुमतियाँ और एक ही उपयोगकर्ता पी का उपयोग करके, और यह काम करता है।

मैं भी करता lsहूं और मैं फाइल देख सकता हूं, इसलिए मुझे नहीं पता कि यह क्यों नहीं चलेगा।


1
क्या आपने विंडोज पर `areadetect_movie_21.py 'संपादित किया था? यदि आपने यह askubuntu.com/a/372691 देखा है
अर्कादियुस ड्राज्स्की

ग्रहण में हाँ, क्यों?
रेग

मैंने इसे जोड़ने के बाद अपनी टिप्पणी संपादित की। इस देखें askubuntu.com/a/372691
अर्कादियुस ड्राज्स्क

हाँ हाँ हाँ यह काम किया, बहुत बहुत धन्यवाद! क्या आप अपनी टिप्पणी को उत्तर में बदल सकते हैं ताकि मैं इसे स्वीकार कर सकूँ।
रेग

ठीक है, मैंने इसे किया :)
अर्कादियुस ड्राज्स्की

जवाबों:


28

से AskUbuntu , द्वारा जवाब देने के गाइल्स :

यदि आप त्रुटि देखते हैं: "ऐसी कोई फ़ाइल या निर्देशिका नहीं" (बृहदान्त्र से पहले कुछ भी नहीं है), तो इसका मतलब है कि आपकी शेलबैंग लाइन में अंत में एक गाड़ी वापसी है, संभवतः क्योंकि यह विंडोज के तहत संपादित किया गया था (जो सीआर, एलएफ का उपयोग करता है एक के रूप में) लाइन सेपरेटर)। CR वर्ण कर्सर को संदेश की शुरुआत को प्रिंट करने के बाद लाइन की शुरुआत में वापस ले जाने का कारण बनता है और इसलिए आपको केवल CR के बाद का भाग देखने को मिलता है जो कि इंटरप्रेटर स्ट्रिंग को समाप्त करता है जो त्रुटि संदेश का हिस्सा है।

सीआर को हटा दें: शेलबैंग लाइन को यूनिक्स लाइन समाप्त होने की आवश्यकता है (केवल लाइनफीड)। पायथन ही CRLF लाइन एंडिंग की अनुमति देता है, इसलिए अन्य लाइनों पर CR वर्ण चोट नहीं पहुँचाते हैं। दूसरी ओर शैल स्क्रिप्ट सीआर वर्णों से मुक्त होनी चाहिए।

विंडोज लाइन एंडिंग को हटाने के लिए, आप dos2unix का उपयोग कर सकते हैं :

सुडो dos2unix / usr / स्थानीय / बिन / कैस्परज

या sed:

sudo sed -i -e 's / \ r $ //' / usr / लोकल / बिन / कैस्परज

यदि आपको विंडोज़ के तहत स्क्रिप्ट्स को संपादित करना है, तो एक ऐसे संपादक का उपयोग करें जो यूनिक्स लाइन एंडिंग (यानी नोटपैड की तुलना में कुछ कम मस्तिष्क-मृत) का सामना करता है और सुनिश्चित करें कि यह यूनिक्स फ़ाइल को संपादित करते समय यूनिक्स लाइन एंडिंग (यानी एलएफ केवल) लिखने के लिए कॉन्फ़िगर किया गया है।


1
मैंने अपने विंडोज़ पीसी पर नोटपैड में ssh के माध्यम से, पीआई पर, फ़ाइल खोली और गाड़ी को वापस कर दिया और यह काम करता है :) बहुत बहुत धन्यवाद।
रेग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.