2013-05-22 1 views
0

어둠의 역사에 대한 이유가 무엇이든, 우리는 오랫동안 창에서 pyodbc를 사용하여 시스템을 실행 해 왔지만 ODBC라고합니다.우분투에서 pyodbc egg의 이름을 odbc egg로 바꿀 수 있습니까?

이제 Linux로 포팅을 시도했지만 pyodbc를 설치했지만 "import pyodbc"는 정상적으로 작동하지만 장기 실행 코드는 "import odbc"할 수 없습니다.

하나의 해결책은 "if sys.plateform.find ('linux')"이고 "import pyodbc as odbc"또는 "import pyodbc"를 수행하는 것인데, 해커처럼 보입니다.

난자의 이름을 바꿀 수있는 방법이 있습니까?

두 파일의 이름을 바꾸고 "import odbc"가 해당 파일을 찾습니다. . . 그러나 때문에 내부 이름의 혼동하는 것 같다

 
    File "/local/mnt/workspace/aswp401/source/qcom/qct/modem/arch/sandbox/fmerrow/hub/py/utils/dbutils.py", line 1, in 
    import odbc 
ImportError: dynamic module does not define init function (initodbc) 

기능이 initpyodbc이라는 것을되는 과정의 문제, initodbc 없습니다.

이러한 이름을 변경하는 비공식적 인 방법이 있습니까? 아니면 sys.platform이 최선의 선택입니까?

프랭크

답변

0

이 처리하는 가장 간단한 방법은 다음과 같습니다

try: 
    import pyodbc 
except ImportError: 
    import odbc as pyodbc 

달리 할 수있는 몇 가지 강력한 이유가없는 한, 단지 그들을 밖으로 시도, 설치 될 하나의 추측하려고하지 않습니다. 보통의 이점 이외에도 EAFP의 경우입니다. 추측이 나중에 무효화 되더라도 계속 작동한다는 사실이 있습니다 (예 : OpenBSD 시스템을 설정하고 Windows 컴퓨터에서 패키지를 업그레이드하며, ...).

일반적으로 모듈의 공식 이름을 먼저 시도한 다음 이전/변형/등을 시도하는 것이 좋습니다. 이름은 대체 이름입니다.

또한 사용 코드 전반에 걸쳐 공식 현재 이름에 일반적으로 더 나은 ...하지만 당신이 한 경우 이미 odbc.thisodbc.that을 수행하는 코드를 많이 가지고, 당신은 검색 및 바꾸기 간단한을 신뢰하지 않는 또는 다른 리팩토링 도구를 마음대로 사용할 수 있다면 import pyodbc as odbc을 사용할 수 있습니다.


그냥 나 (그것이 귀하의 경우에는하지 않습니다 모양) 작동하지 않을 수있는 계란의 이름을 변경하지만이 경우에도 나쁜 생각입니다.

최소한 패키지 관리자가 (apt, easy_install, pip 또는 그 밖) 다른 패키지 관리자와 혼동을 일으킬 수 있습니다. 예를 들어, 패키지를 업그레이드하거나 제거하거나 다른 패키지를 설치할 수없는 경우가 있습니다.

최악의 경우 "대부분"작동하지만 실패 할 수 있습니다 패키지의 중간에있는 C 확장 모듈은 정규화 된 모듈 이름에 의존하며이 코드는 드문 경우에만 호출됩니다.