반응형

 

내부망(폐쇄망)일 경우 외부 인터넷 환경에서 다운로드 후 반입한 whl 파일들을 일괄 설치할 경우가 있죠? 

많은 양의 whl 파일들을 하나씩 개별 설치하려면 시간적 소모가 있습니다. 

하나하나 잘 설치 되는지 확인하려면 개별 설치도 의미가 있지만... 

 

외부와 내부 서버가 동일한 환경이면 한번에 전체 설치하는게 편하겠죠?? 

 

일괄 설치가 필요한 경우에 사용하는 방법입니다. (리눅스와 윈도우) 

 

아래는 리눅스에서 설치하는 방법입니다. 

for x in `ls /home/pip-packages`; do pip install $x; done

 

아래는 윈도우에서 설치하는 방법입니다. 

import glob
import subprocess
for path in glob.glob("c:/path/to/wheel/files/*.whl"):
    subprocess.run(f'pip install {path}')

 

자 그럼 이제 일괄 설치를 진행해 보도록 하죠~~   gogogo!! 

반응형
반응형

 

pip3 혹은 pip는 기본적으로 (/usr/local/lib/python3.6 같은) 시스템 디렉터리에 Python 패키지를 설치합니다.

아래와 같이 sudo 혹은 root 계정으로 설치를 진행합니다.  

 

sudo pip3 install [package name]

 

기본 디렉토리에 설치하지 않고 로그인한 사용자 계정에 설치도 가능합니다. 

"--user" 옵션을 사용하면 됩니다.  

 

pip3 혹은 pip의 --user를 사용하면 로그인 한 계정의 home 디렉터리에 패키지를 설치합니다.

로그인 한 사용자 계정에만 적용이 되니까 여러 측면에서 장점이 있겠죠? 

아래와 같이 사용합니다.  

 

pip3 install --user [package name] 

 

가상(virtual) 환경으로 잡아서 설치하셔도 되는데... 

그 부분은 다음에 알아 보도록 하시죠.  

 

즐거운 파이썬 lib 설치 되세요~~    ^^ 

 

 

 

반응형
반응형

Python 랜덤 번호 생성 예제

 

# Program to generate a random number between 0 and 9

# importing the random module
import random

print(random.randint(0,9))
반응형
반응형

Python 숫자 더하기 예시

# This program adds two numbers

num1 = 1.5
num2 = 6.3

# Add two numbers
sum = num1 + num2

# Display the sum
print('The sum of {0} and {1} is {2}'.format(num1, num2, sum))

Python 입력 받은 숫자 더하기 예시 

# Store input numbers
num1 = input('Enter first number: ')
num2 = input('Enter second number: ')

# Add two numbers
sum = float(num1) + float(num2)

# Display the sum
print('The sum of {0} and {1} is {2}'.format(num1, num2, sum))
반응형
반응형

Python 구구단을 출력하는 샘플 코드입니다. 

오늘도 즐 코딩 되세요~~ 

 

print("구구단 2단~9단 출력.\n")
for x in range(2, 10):
    print("*** ["+ str(x) +"단] ***")
    for y in range(1, 10):
        print(x, "x", y, "=", x*y)
반응형
반응형

리눅스 유형별로 python-dev 설치 관련 가이드입니다.  

 

For apt (Ubuntu, Debian...):

sudo apt-get install python-dev   # for python2.x installs
sudo apt-get install python3-dev  # for python3.x installs

For yum (CentOS, RHEL...):

sudo yum install python-devel    # for python2.x installs
sudo yum install python3-devel   # for python3.x installs

For dnf (Fedora...):

sudo dnf install python2-devel  # for python2.x installs
sudo dnf install python3-devel  # for python3.x installs

For zypper (openSUSE...):

sudo zypper in python-devel   # for python2.x installs
sudo zypper in python3-devel  # for python3.x installs

For apk (Alpine...):

# This is a departure from the normal Alpine naming
# scheme, which uses py2- and py3- prefixes
sudo apk add python2-dev  # for python2.x installs
sudo apk add python3-dev  # for python3.x installs

For apt-cyg (Cygwin...):

apt-cyg install python-devel   # for python2.x installs
apt-cyg install python3-devel  # for python3.x installs
반응형
반응형

 

Python의 collection의 자료형에는 defaultdict, orderdict, Count, NamedTuple 등이 있지요.   ^^ 

내장 자료형의 Dictionary는 반듯이 key, value로 구성해서 생성해야 합니다. 

하지만 key를 넣은 후 value가 없거나 적합하지 않을 경우 임의의 value로도 Dictionary 구성이 가능 합니다. 

그것을 가능하게 하는 것이 defultdict 입니다.  

 

defaultdict의 예제에 대해서 알아 보겠습니다. 

 

예제1) defaultdict의 기본 예시 

Dict = {1: 'Geeks', 2: 'For', 3: 'Geeks'} 
print("Dictionary:") 
print(Dict)
print(Dict[1])

Output:

Dictionary:
{1: 'Geeks', 2: 'For', 3: 'Geeks'}
Geeks

 

예제2) defaultdict에서 key가 없을 경우 처리 예시 

from collections import defaultdict
  
  
# Function to return a default
# values for keys that is not
# present
def def_value():
    return "Not Present"
      
# Defining the dict
d = defaultdict(def_value)
d["a"] = 1
d["b"] = 2
  
print(d["a"])
print(d["b"])
print(d["c"])

Output:

1
2
Not Present 

 

예제3) defaultdict에서 default 값을 list로 줄 경우 

from collections import defaultdict
  
  
# Defining a dict
d = defaultdict(list)
  
for i in range(5):
    d[i].append(i)
      
print("Dictionary with values as list:")
print(d)

Output:

Dictionary with values as list:
defaultdict(<class 'list'>, {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})

 

예제4) defaultdict에서 default 값이 int인 경우1 

from collections import defaultdict
   
   
# Defining the dict
d = defaultdict(int)
   
L = [1, 2, 3, 4, 2, 4, 1, 2]
   
# Iterate through the list
# for keeping the count
for i in L:
       
    # The default value is 0
    # so there is no need to 
    # enter the key first
    d[i] += 1
       
print(d)

Output:

defaultdict(<class 'int'>, {1: 2, 2: 3, 3: 1, 4: 2})

 

예제5) defaultdict에서 default 값이 int인 경우2 

from collections import defaultdict

animals = ['dog', 'cat', 'rabbit', 'tiger', 'cat', 'cat', 'rabbit']
dic = defaultdict(int)

for animal in animals:
    dic[animal] += 1

print(dic)

 

Output:

defaultdict(<class 'int'>, {'dog': 1, 'cat': 3, 'rabbit': 2, 'tiger': 1})
반응형
반응형

 

원격 maven repository에서 파일들을 전체 다운로드 받을 일이 생겼습니다. 

내부 nexus 등의 repository에 일괄 업로드해서 내부망에서 사용하기 위해서인데요. 

 

아래 이미지와 같은 원격 maven repository에 있는 전체 폴더, 파일을 일괄 다운로드 하는 방법을 알아 보겠습니다. 

 

리눅스에서 lftp 명령어를 사용해서 일괄 다운로드하겠습니다. lftp 관련된 명령어나 사용법은 많으니 검색해 보시고요. 

먼저, 리눅스에서 lftp를 설치합니다.  

 

centos인 경우는...  아래 명령어를 통해 install 합니다.   우분투나 다른 리눅스 관련 명령어로 install하시면 됩니다. 

$ sudo yum install lftp 

 

install이 되었으면 url의 경로에서 전체를 다운로드 하고자 하는 폴더를 생성 후 이동합니다. 

mkdir linkedin 

cd linkedin 

 

폴더 이동 후 lftp 명령어를 통해 url에 접속합니다. 

lftp https://packages.confluent.io/maven  

 

정상 접속이 되시면 아래와 같은 메시지가 로딩 됩니다. 

 

정상 접속후에 아래의 명령어를 순차적으로 작성하시면 centos의 생성한 폴더로 다운로드가 됩니다. 

파일을 전체 받아오려니 시간이 좀 걸리겠죠? 

 

set ftp:ssl-allow false
set ftp:passive-mode off
set ssl:verify-certificate no

mirror

 

아래 명령어를 사용하시면 병렬 처리로 속도가 조금 더 빠를 수 있습니다. 

mirror -c --parallel=10

 

구글링을 좀 하다가 찾아낸 방법인데요. 

필요하신 분은 이 방법을 통해 구글링하는 시간을 조금 줄였으면 좋겠습니다. 

 

 

참고 사이트 : https://serverok.in/download-all-files-from-ftp-server-using-lftp

 

반응형

+ Recent posts