2016-11-25 3 views
0

작은 파이썬 program을 작성했습니다. 다시 좋은 구조를 만드는 데 어려움을 겪고 있습니다.어디서나 파이썬 프로그램을 실행할 수있게 만들었습니다

며칠 전 나는 from a import b 수입에 대해 조언과 수입 (I 가져올 무엇을 프로젝트 루트에서 전체 경로)를 항상 import a.b "프로젝트 절대"경로를 사용하는 것이 좋습니다 blog 및 다른 많은 웹 사이트를 참조하십시오. 그걸 배경으로.

저는 python -m <directory>으로 프로그램을 실행할 수 있도록 __main__.py을 포함 시켰습니다.이 프로그램은 수백 개의 파이썬 가져 오기 질문 중 하나에서 stackoverflow에 대한 다른 사람의 추천이었습니다. 다른 프로젝트에서 문제가되었던 동일한 가져 오기 구조로 코드를 실행 가능하고 테스트 가능하게 유지하는 데 도움이됩니다.

이제 내 시스템의 어느 곳에서나 python -m <dir of my code>을 실행할 수 있으며 한 디렉터리에서 RSTCitations 디렉터리까지 실행할 수 있습니다.

내가없는 그, 달성 할 수있는 방법 :

  • 파이썬 경로 (더러운 해킹 있습니다) 조작
  • 다른 어두운 마법을 일을하지 않는 것이 좋습니다 수입 구조
  • 을 어떻게 든 내 수입을 변경하고 점점 내 코드

내 코드를 구성하는 데있어 우수 사례를 고수하고 싶지만 터미널에있는 모든 위치에서 실행 가능하도록하고 싶습니다. 경로 가 올바른지입니다 그러나

/home/user/development/anaconda3/bin/python: No module named /home/user/development/rst-citations-to-raw-latex/RSTCitations 

: 내 프로그램에 다른 디렉토리 전혀 관계가없는에서 설명 된 바와 같이 나는이 프로그램을 실행하면

실패의

예, 나는 예를 들어 다음과 같은 오류가 발생합니다. 바로 그 코드가있는 곳입니다.

+0

'from a import b '(그리고 참으로 당신이 참조한 블로그는 그것에 대해 추천하지 않습니다 *)와 아무런 문제가 없습니다. –

+0

패키지를 pip에 설치해 보셨습니까? –

+0

@AlexGarcia 아니요. 사용자가 아무 것도 설치하지 못하도록하고 싶습니다. (어쩌면 장래에 내가 업로드 할 것입니다. 어디서든 내 프로그램을 실행할 수 있어야합니다. – Zelphir

답변

0

당신은 할 수 있습니다

다른 사용자가 라이브러리를 '가져 오기'할 필요는 없지만 독립 실행 형 프로그램으로 사용하는 경우에는 심볼릭 링크/스크립트를 프로그램에 놓고 다음과 같은 디렉토리에서 실행 가능하게 만들 수 있습니다. PATH에 있습니다.

+0

심볼릭 링크 아이디어를 도와 줄 수 있습니까? 내 프로그램을 실행하는 스크립트에 대한 심볼릭 링크를 만들어야하고 현재 내 프로그램을 호출해야하는 디렉토리 안에 있다는 것을 의미합니까? – Zelphir