pipenv shell 환경에서 maturin develop 을 하면 아래와 같이 오류가 뜹니다 (pyo3-9vp6XEz5) D:\D\Work\study\Rust\inflean\easy-rust\pyo3>maturin develop 🔗 Found pyo3 bindings 🐍 Found CPython 3.12 at C:\Users\INNO-A-1328\.virtualenvs\pyo3-9vp6XEz5\Scripts\python.exe 📡 Using build options features from pyproject.toml Compiling once_cell v1.20.2 Compiling unindent v0.2.3 Compiling cfg-if v1.0.0 Compiling libc v0.2.169 Compiling pyo3-build-config v0.23.3 Compiling memoffset v0.9.1 Compiling pyo3-ffi v0.23.3 Compiling pyo3-macros-backend v0.23.3 Compiling pyo3 v0.23.3 Compiling pyo3-macros v0.23.3 Compiling fibonacci v0.1.0 (D:\D\Work\study\Rust\inflean\easy-rust\pyo3) error[E0599]: no method named add_function found for reference &pyo3::types::PyModule in the current scope --> src\lib.rs:17:7 | 17 | m.add_function(wrap_pyfunction!(run, m)?)?; | ^^^^^^^^^^^^ method not found in &PyModule error[E0277]: the trait bound &pyo3::types::PyModule: WrapPyFunctionArg<'_, _> is not satisfied --> src\lib.rs:17:42 | 17 | m.add_function(wrap_pyfunction!(run, m)?)?; | ----------------------^- | | | | | the trait WrapPyFunctionArg<'_, _> is not implemented for &pyo3::types::PyModule | required by a bound introduced by this call | = help: the following other types implement trait WrapPyFunctionArg<'py, T> : &pyo3::Borrowed<'_, 'py, pyo3::types::PyModule> &pyo3::Bound<'py, pyo3::types::PyModule> pyo3::Borrowed<'_, 'py, pyo3::types::PyModule> pyo3::Bound<'py, pyo3::types::PyModule> pyo3::Python<'py> error[E0277]: the trait bound &pyo3::types::PyModule: From<BoundRef<'_, '_, pyo3::types::PyModule>> is not satisfied --> src\lib.rs:15:1 | 15 | #[pymodule] | ^^^^^^^^^^^ the trait From<BoundRef<'_, '_, pyo3::types::PyModule>> is not implemented for &pyo3::types::PyModule , which is required by BoundRef<'_, '_, pyo3::types::PyModule>: Into<_> | = note: required for BoundRef<'_, '_, pyo3::types::PyModule> to implement Into<&pyo3::types::PyModule> = note: this error originates in the attribute macro pymodule (in Nightly builds, run with -Z macro-backtrace for more info) Some errors have detailed explanations: E0277, E0599. For more information about an error, try rustc --explain E0277 . error: could not compile fibonacci (lib) due to 3 previous errors 💥 maturin failed #[pymodule] 이하 부분을 주석처리하면 아래 에러는 해결되나 python main.py 실행하면 fibonacci 를 찾을 수 없다는 에러가 발생합니다
안녕하세요 맥으로 수강중인 사람입니다. 다름이아니라 네이버지식인gui를 vscode에서 코드 실행 후 저장버튼을 누르면 엑셀파일로 저장이 잘되었는데 실행파일로 만들고 추출한다음 저장버튼을 누르면 저장이 되지않습니다 이유를 알수있을가요? 코드를 다시봐도 문제는 없는데 이유를 못찾겠습니다ㅠㅠ
안녕하세요 오늘 네이버지식인GUI.exe를 만드는데 성공하였습니다. 그런데 처음에는 실패했습니다. 그이유는 커널이 이미지에서 위에 것(★Python 3.12.8 ~~~ 맞춤)으로 되어 있었습니다. pip install pyinstaller 해도 설치가 안된것으로 나왔습니다.(pip --version으로 확인) 그런데 아래것(Python 3.12.8 ~~~Global Env) 선택하니 모든것이 잘 되었습니다. [문의사항] 위에것 아래것 모두 버전이 Python3.12.8로 동일한데 이 두개가 서로 다른것인가요? 만약 다르다면 저는 python을 오늘 삭제하고 Python3.12.8을 1번만 설치했습니다. 이렇게 두개가 보이는 이유는 무엇일까요? 감사합니다.
어느 파트 이분 탐색 알고리즘[문제풀이] :BOJ 3020 자신은 어떻게 이해했는지 이분탐색을 통해 top 과 bottom을 따로 나눠서 탐색하는 것 까지는 이해했습니다. 어떤 부분이 궁금한지 get_idx(bots, h - 1) + 1 과 get_idx(tops, h) + 1 이 부분에서 구하려고 하는 높이의 직전 index를 구하는 것 까지는 이해하였으나, 왜 1을 더하는 지는 이해가 잘 되질 않습니다. 해당 부분에 대해서 좀더 자세한 설명 부탁드리겠습니다.
강사님, 안녕하세요. 다중 스케줄러 실행 시 정상적으로 동작하고 있는지 확인할 수 있는 방법에 대해 문의드립니다. 현재 Worker와 Scheduler를 다중으로 실행하여 고가용성 테스트를 진행 중입니다. Worker의 경우 Celery Flower를 통해 정상적으로 Sync가 이뤄지는 것을 확인하였습니다. 다만 Scheduler의 경우 뭔가 정확하게 확인이 안되는 것 같습니다. 우선 제가 찾은 방법으로는 메타 테이블 조회와 커맨드가 있습니다. 메타 테이블 조회 아래와 같이 조회하면 running인 상태의 host가 Scheduler 수만큼 조회됩니다. hostname도 모두 일치합니다. select * from job where job_type = 'SchedulerJob' and state = 'running'; 커맨드 아래와 같이 커맨드 실행 시 'Found one alive job.'이 출력됩니다. $ airflow jobs check --job-type SchedulerJob Found one alive job. Scheduler 로그 확인 시 모두 heartbeat은 계속 요청하고 있습니다. 혹시 Worker와 같이 명확하게 다중 스케줄러 환경인지 확인하는 방법이 있을까요?
variables 를 추가하는 강의에서 variables 추가하고, dags_bash_with_variable.py를 생성후, git push 하고 나중에 봣더니 그 많던 dag(examples + 강의때 따라한 dag) 들중에 딸랑 3개만 보이고 안보여요.. dags 폴더 하위를 찾아가보니 파일은 그대로 존재하는데.. 왜 3개만보이는건지 .. 혹시 확인해볼만한 로그들이나... 이유에 대해서 아실까요..? docker exec -it {스케줄러노드ID} bash 로 들어가서 dags도 확인해봤습니다.
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 섹션1에 10강을 수강하고있습니다 1-10. 알고리즘 더 풀어보기 (2) 2. 어려움을 겪는 부분 강사님께서 제공해주신 문제를 먼저 풀어보았는데 아래처럼 내장함수를 이용해서 풀어도 되나? 궁금합니다. 최대한 저런 함수 사용하지 않고 강사님께서 제공해주시는 풀이법으로 알고리즘을 공부하는게 맞는거같은데.. 저처럼 풀면 안되는건가 싶어서요...ㅠㅠ 알고리즘적인 생각이 아닌가도 싶고 ㅠㅠ 고민입니다! 일단 char로 순서대로 돌꺼고 어차피 갯수가 1이면 바로 char 을 return해 주면 되지 않을까? 해서 아래처럼 해보았습니다... def find_not_repeating_first_character(string): # 이 부분을 채워보세요! for char in string: if string.count(char) == 1: return char return "_" 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
sqlalchemy 강의 내용에 보면 connection pool에 대한 이론과 실습 설명이 있었습니다. 헌데 비동기를 이용하여 하나의 connection pool만 사용하는 것으로 실습과 코드가 마무리 되더군요. 제가 생각할 때, connection pool을 제대로 사용하기 위해서는 사용 가능한 모든 pool 을 병렬로 처리해야 하지 않을까란 생각이 들었습니다. 하지만, 비동기 병렬 처리를 하게 되면 트랜잭션 락으로 인해 race condition 상태 등의 더 복잡한 문제가 발생할거 같은데, 사용하는게 맞는가란 생각도 들었습니다. 이에 아래와 같은 질문을 드리려 합니다. 1. 실무에서 사용시 connection pool로 할당한 수만큼 비동기 병렬로 처리를 하는게 맞는지요? 2. 만약 맞다면, 트랜잭션 락은 어떻게 구현하여 사용하는게 일반적인지요? 혹은, 예제와 달리, fastapi에서는 요청이 들어오는대로 각각의 connection pool에 할당을 하고 10개가 넘는 경우는 대기를 하다 반환된 pool에 배치되는건지요?
안녕하세요. 군대에서 정말 잘 듣고있습니다. 아무래도 싸지방이다보니 codespace로 동작시켰는데요. 다름이 아니라 셀레니움 부분을 공부하던 중 어찌저찌해서 driver를 연결까진 했으나, 화면이 뜨지 않아서 질문드립니다. 에러가 나는 것은 아니지만, 아마 GUI가 설정이 안되어있어서 그런 것 같습니다. 어떻게 해야할까요? 아래는 driver = webdriver.Chrome()를 codespace에 맞게 변경한 코드이고 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # ChromeDriver 경로 명시 chromedriver_path = "/usr/local/bin/chromedriver" # ChromeDriver 경로 chrome_path = "/usr/bin/google-chrome" # Chrome 브라우저 경로 (시스템에 따라 다를 수 있음) # Chrome 옵션 설정 options = Options() options.add_argument("--headless") # GUI 없이 실행 options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') options.binary_location = chrome_path # Chrome 브라우저 경로 설정 # ChromeDriver 서비스 설정 service = Service(chromedriver_path) # WebDriver 생성 driver = webdriver.Chrome(service=service, options=options) 아래는 이로인해 나타나는 화면입니다. driver.get() 등등의 메소드를 이용하면 title, current_url의 결과로 잘 작동되는 것을 알 수 있습니다. 하지만, 화면이 바뀌지 않아서 문제입니다. 앞에서도 언급했지만, GUI를 codespace에서 설정하는 방법을 알아야할 거 같은데 쉽지 않습니다.. GUI가 없다보니 headless를 설정할 수밖에 없었구요..
강의 - 섹션16 - "UART로 printf()를 구현해보자! 4" 강의를 따라하던 도중 문제가 발생하여 질문을 올려봅니다. 이게 사실 지금은 무시해야 할 문제이긴 한데, 해결하는 걸 워낙에 좋아해서... 그래서 신경쓰지 말고 지금은 무시하라고 답해주셔도 됩니다! 혹여 봐주신다면 알고 계신 문제인지, 문제 해결 과정에 오류가 있는지 봐주시면 감사합니다! 해결 과정에서 적은 노트는 아래에 적었습니다. Xshell에 "i = 1"이, 코드 업로드 후 최초 1회 더 출력되는 문제가 있다. 원인을 찾아보자. -> printf() 함수에 내부적으로 사용되는 _write() 함수가, "syscalls.c" 소스파일에 weak symbol로 정의가 되어 있어서, _write() 함수를 "main.c" 파일에서 retarget하여 printf() 함수를 강의대로 Xshell에 출력하도록 했다. int _write(int file, char *ptr, int len) { HAL_UART_Transmit(&huart1, (const uint8_t*)ptr, len, 10); return len; } 결과 i = 1 // user가 설정한 딜레이와 관계없이, 다음의 "i = 1"과 대략 1초 정도의 간격 i = 1 // user가 설정한 HAL_Delay(100), 이후로 동일한 100ms 딜레이 i = 2 i = 3 i = 4 ... "main.c" 코드만으로 보았을 때, 분명 'i'는 1이 증가하여 출력되었으므로, 문제는 printf() 함수에 있음이 분명하다. -> write() 함수를 통해 원인을 찾고자, write() 함수가 최초 1회는 무시하도록 코드를 다음과 같이 수정한다. bool ignoreFirstWrite = true; int _write(int file, char *ptr, int len) { if (ignoreFirstWrite) { ignoreFirstWrite = false; } else { HAL_UART_Transmit(&huart1, (const uint8_t*)ptr, len, 10); } return len; } 결과 i = 1 // user가 설정한 HAL_Delay(100), 이후로 동일한 100ms 딜레이 i = 2 i = 3 i = 4 ... !!! _write() 함수가 최초 1회 더 실행되는 것을 확인했다. int _write(int file, char *ptr, int len) { HAL_UART_Transmit(&huart1, (const uint8_t*)ptr, len, 10); return len; } 위의 _write() 함수로 하여 두 가지의 테스트를 추가로 진행해본다. -> 1. 'i' 초기값만 바꿔서 코드를 업로드한다. 2. 코드 업로드가 아니라, debug로 실행해본다. (최초 HAL_Init() 함수에서 걸리고, 곧바로 breakpoint 없이 resume한다.) -> !!! 최초 1회 출력 문제가 사라졌다. 1. 'i' 초기값을 변경하여 업로드한다. int i = 10; 결과 i = 1 i = 11 i = 12 i = 13 i = 14 ... 다시 'i' 초기값을 변경하여 업로드한다. int i = 0; 결과 i = 11 i = 1 i = 2 i = 3 i = 4 ... !!! 이전에 업로드할 때 _write() 함수로 처음 출력한 문자열이, 다음 업로드 때 출력된다. 정리 1. _write() 함수가 최초 1회 더 실행된다. 2. 디버그 환경에서는 문제가 발생하지 않는다. -> 전혀 모르겠다. -> [수정]: float로 테스트 후부터는, 디버그 환경에서도 정수/실수 모두 동일하게 문제가 발생한다. 3. 이전에 업로드할 때 _write() 함수로 처음 출력한 문자열이, 다음 업로드 때 출력된다. -> 마지막에 출력한, 혹은 출력 대기중인 문자열도 아니고, 왜 이전 업로드 때 처음 출력한 문자열일까? -> 원인이 어디인지 찾아보자. board, FT232, Xshell 혹은 그 사이 어디서 문제인지 찾으려 했으나, 애초에 _write() 함수가 1회 더 실행되는 것이 확실하니, -> ????? "stdio.h" 구조로 접근해야 하나? 아니, 코드는 새롭게 업로드하는 거고, 이전의 정보가 'board'에 남아있다는 건데, printf() 함수가, 이전 업로드할 때 최초로 출력했던 문자열을 어떻게 가지고 있을 수 있지? 아니면 PA9 USART1 transmitter에 buffer가? 어떻게 접근해야 하지? -> 전혀 모르겠다. 포기. 끝. 무시하고 강의 진행하자.